aboutsummaryrefslogtreecommitdiffstats
path: root/client/client.erl
blob: 9781b74f0043c7b36c301a643b88f796fcee549b (plain) (blame)
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.