From de262a2fec61a1ba00227c727ced68f1d8544b89 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 11 Nov 2015 05:05:09 +0100 Subject: Working event handler --- src/pbx_acse.erl | 10 ++-------- src/pbx_conn.erl | 4 +++- src/pbx_events.erl | 9 +++++++++ 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 src/pbx_events.erl diff --git a/src/pbx_acse.erl b/src/pbx_acse.erl index 9a3cf47..1376cb9 100644 --- a/src/pbx_acse.erl +++ b/src/pbx_acse.erl @@ -4,7 +4,6 @@ -include("ACSE-1.hrl"). -include("CSTA-application-context-information-csta3.hrl"). --export([start_link/0, add_handler/2]). -export([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2, code_change/3]). -export([encode/1, decode/1]). @@ -44,14 +43,9 @@ decode(<>) -> %%% -start_link() -> - gen_event:start_link({local, ?MODULE}). - -add_handler(Handler, Args) -> - gen_event:add_handler(?MODULE, Handler, Args). - init(_Args) -> - {ok, []}. + io:format("Init~n"), + {ok, undefined}. handle_event({aare, #'AARE-apdu'{result = Result}}, _State) -> io:format("AARE ~p~n", [Result]), diff --git a/src/pbx_conn.erl b/src/pbx_conn.erl index ebabcef..3cd0f00 100644 --- a/src/pbx_conn.erl +++ b/src/pbx_conn.erl @@ -15,6 +15,8 @@ start_link() -> init(Args) -> send(pbx_acse:encode(associate)), [Host, Port] = Args, + pbx_events:start_link(), + pbx_events:add_handler(pbx_acse, []), gen_tcp:connect(Host, Port, [binary, {packet, 2}]). handle_call(_Request, _From, Socket) -> @@ -30,7 +32,7 @@ handle_info({tcp, _, Data}, Socket) -> pbx_acse:decode(Data), Pdu = pbx_pdu:decode(Data), io:format("PDU ~p~n", [Pdu]), - %gen_event:notify({local, pbx_acse}, Pdu), + gen_event:notify(pbx_events, Pdu), {noreply, Socket}; handle_info({tcp_closed, _}, Socket) -> diff --git a/src/pbx_events.erl b/src/pbx_events.erl new file mode 100644 index 0000000..efdd3d8 --- /dev/null +++ b/src/pbx_events.erl @@ -0,0 +1,9 @@ +-module(pbx_events). + +-export([start_link/0, add_handler/2]). + +start_link() -> + gen_event:start_link({local, ?MODULE}). + +add_handler(Handler, Args) -> + gen_event:add_handler(?MODULE, Handler, Args). -- cgit v1.2.3