aboutsummaryrefslogtreecommitdiff
path: root/apps/dreki/src/dreki_event_manager.erl
blob: a3926922f520e38bab89e6511175acf98f4af3dd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-module(dreki_event_manager).
-include_lib("kernel/include/logger.hrl").
-define(SERVER, {local, ?MODULE}).
-export([start_link/1]).
-export([add_handler/2]).
-export([notify/1]).
-export([init/1, handle_event/2]).

start_link(Options) ->
  case gen_event:start_link(?SERVER, Options) of
      Ok = {ok, _} ->
          ok = add_handler(?MODULE, undefined),
          Ok;
      Error ->
          Error
  end.

add_handler(Handler, Args) ->
    gen_event:add_handler(?MODULE, Handler, Args).

notify(Event) ->
    gen_event:notify(?MODULE, Event).

%% gen_event handler

init(_Args) ->
    {ok, undefined}.

handle_event(Event, State) ->
    ?LOG_NOTICE(#{event => Event}),
    {ok, State}.