-
Notifications
You must be signed in to change notification settings - Fork 1
/
t_gen_event.erl
53 lines (38 loc) · 1.3 KB
/
t_gen_event.erl
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
-module (t_gen_event).
%% ===================================================================
%% gen_event
%%
%% t_gen_event:start_link ().
%% t_gen_event:register ().
%% t_gen_event:send_event ({msg, <<"deeper">>}).
%% t_gen_event:send_event (aswdf).
%% t_gen_event:release ().
%% t_gen_event:stop ().
%%
%% ===================================================================
-behaviour (gen_event).
-export ([start_link/0, register/0, send_event/1, release/0, stop/0]).
-export ([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2, code_change/3]).
start_link () ->
gen_event:start_link ({local, event_manager}).
register () ->
gen_event:add_handler (event_manager, ?MODULE, []).
send_event (Event) ->
gen_event:notify (event_manager, Event).
release () ->
gen_event:delete_handler (event_manager, ?MODULE, release).
stop () ->
gen_event:stop (event_manager).
init ([]) ->
{ok, []}.
handle_event (Event, State) ->
io:format ("=============Event:~p, State:~p~n", [Event, State]),
{ok, State}.
handle_call (_Request, State) ->
Reply = ok,
{ok, Reply, State}.
handle_info (_Info, State) -> {ok, State}.
terminate (Reason, _State) ->
io:format ("=============Terminate Reason:~p~n", [Reason]),
ok.
code_change (_OldVsn, State, _Extra) -> {ok, State}.