summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-28 19:05:07 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-28 19:05:07 +0100
commit104e5358a447e61755281329e0d72a61b1f65bea (patch)
tree0e0cfb4faef5dcda648ce3e1137992eaa990a944
parent001d672798fd0ed8d1f5a0d919170b51839614a5 (diff)
Simplify
-rw-r--r--tda.erl69
1 files changed, 35 insertions, 34 deletions
diff --git a/tda.erl b/tda.erl
index b417d9a..48eb9e0 100644
--- a/tda.erl
+++ b/tda.erl
@@ -10,9 +10,9 @@
start() -> register(tdaPid, spawn(?MODULE, client, [{dial, ?HOST, ?PORT}])).
-stop() -> tdaPid ! {logout}.
-ext() -> tdaPid ! {ext}.
-co() -> tdaPid ! {co}.
+stop() -> tdaPid ! logout.
+ext() -> tdaPid ! ext.
+co() -> tdaPid ! co.
client({dial, Host, Port}) ->
io:format("Dial ~p:~p~n", [Host, Port]),
@@ -22,7 +22,7 @@ client({dial, Host, Port}) ->
client(Conn);
client({ok, Sock}) ->
io:format("Connected~n", []),
- tdaPid ! {login},
+ tdaPid ! login,
loop(Sock);
client({error, Reason}) ->
io:format("Error: ~p~n", [Reason]),
@@ -32,60 +32,61 @@ loop(Sock) ->
inet:setopts(Sock, [{active, once}]),
io:format("Loop~n", []),
receive
- {login} ->
+ login ->
io:format("Login~n", []),
{ok, Hello} = acse:associate(),
- gen_tcp:send(Sock, Hello),
- loop(Sock);
- {logout} ->
+ gen_tcp:send(Sock, Hello);
+ logout ->
io:format("Logout~n", []),
{ok, Bye} = acse:release(),
- gen_tcp:send(Sock, Bye),
- loop(Sock);
- {ext} ->
+ gen_tcp:send(Sock, Bye);
+ ext ->
io:format("Request Ext lines~n", []),
{ok, Rq} = rose:invoke({present, 2},
{local, 51}, csta:ext_lines()),
io:format("Send: ~p~n", [Rq]),
- gen_tcp:send(Sock, Rq),
- loop(Sock);
- {co} ->
+ gen_tcp:send(Sock, Rq);
+ co ->
io:format("Request CO lines~n", []),
{ok, Rq} = rose:invoke({present, 2},
{local, 51}, csta:co_lines()),
io:format("Send: ~p~n", [Rq]),
- gen_tcp:send(Sock, Rq),
- loop(Sock);
- {tcp, Sock, Msg} ->
- io:format("Reply ~p~n", [Msg]),
- case decode(Sock, Msg) of
- ok -> loop(Sock);
- error -> gen_tcp:close(Sock),
- error
+ gen_tcp:send(Sock, Rq);
+ {tcp, Sock, Data} ->
+ io:format("Got ~p~n", [Data]),
+ case decode(Data) of
+ ok ->
+ ok;
+ {ok, Reply} ->
+ io:format("Reply ~p~n", [Reply]),
+ gen_tcp:send(Sock, Reply);
+ error ->
+ exit(error)
end;
{tcp_closed, _} ->
io:format("Connection closed~n", []),
- closed
+ exit(closed)
after ?TIMEOUT ->
- gen_tcp:close(Sock),
- timeout
- end.
+ exit(timeout)
+ end,
+ loop(Sock).
-decode(Sock, Msg) ->
- case dispatch(Msg) of
+decode(Data) ->
+ case dispatch(Data) of
rose ->
- {ok, Rose} = rose:decode(Msg),
+ {ok, Rose} = rose:decode(Data),
io:format("ROSE> ~p~n", [Rose]),
case rose:dispatch(Rose) of
{ok, Result} ->
- gen_tcp:send(Sock, Result);
- {result, Msg} ->
- io:format("Result: ~p~n", [Msg]),
+ {ok, Result};
+ {result, Data} ->
+ io:format("Result: ~p~n", [Data]),
ok;
- {ok} -> ok
+ {ok} ->
+ ok
end;
acse ->
- {ok, Acse} = acse:decode(Msg),
+ {ok, Acse} = acse:decode(Data),
io:format("ACSE> ~p~n", [Acse]),
acse:accepted(Acse)
end.