summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-11-11 05:05:09 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-11-11 05:05:09 +0100
commitde262a2fec61a1ba00227c727ced68f1d8544b89 (patch)
treecfbc1d2f5287b409bd74af5485fef962898b4f0d
parent7f6d1cbc9e7330e138450f2217bf6c9a85024faf (diff)
Working event handler
-rw-r--r--src/pbx_acse.erl10
-rw-r--r--src/pbx_conn.erl4
-rw-r--r--src/pbx_events.erl9
3 files changed, 14 insertions, 9 deletions
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(<<Data/binary>>) ->
%%%
-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).