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}.
|