diff options
Diffstat (limited to 'apps/dreki/src/dreki_event_manager.erl')
-rw-r--r-- | apps/dreki/src/dreki_event_manager.erl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/apps/dreki/src/dreki_event_manager.erl b/apps/dreki/src/dreki_event_manager.erl new file mode 100644 index 0000000..a392692 --- /dev/null +++ b/apps/dreki/src/dreki_event_manager.erl @@ -0,0 +1,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}. + |