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
|
-module(client).
-export([register/3, login/3, list/0, logged_in/1]).
register(Server, Name, Password) ->
rpc:call(Server, client, register, [self(), {Name, Password}]),
receive
{_, ok, Msg} ->
Msg;
{_, error, Msg} ->
Msg
end.
login(Server, Name, Password) ->
rpc:call(Server, client, login, [self(), {Name, Password}]),
receive
{_, ok, {ok, {logged_in, Client}}} ->
register(cli, spawn(client, logged_in, [Client]));
{_, error, Msg} ->
Msg
end.
list() ->
cli ! {list}.
logged_in(Client) ->
receive
{list} ->
Client ! {list};
_ ->
logged_in(Client)
end.
|