-module(addressbook_client).
-export([getEmail/1,getName/1,addUser/2]).

addressbook_server() ->
    'addressbook@127.0.0.1'.

getEmail(Name) ->
    call_addressbook({getEmail, Name}).
getName(Email) ->
    call_addressbook({getName, Email}).
addUser(Name, Email) ->
    call_addressbook({addUser, Name, Email}).

call_addressbook(Msg) ->
    AddressBookServer = addressbook_server(),
    monitor_node(AddressBookServer, true),
    {addressbook, AddressBookServer} ! {self(), Msg},
    receive
	{addressbook, Reply} ->
	    monitor_node(AddressBookServer, false),
	    Reply;
	{nodedown, AddressBookServer} ->
	    no
    end.


%% Usage:
%
%  % erl -name addressbookclient@127.0.0.1
%
% (addressbookclient@127.0.0.1)1> addressbook_client:addUser(carlos,cv@rpi).
% ok
% (addressbookclient@127.0.0.1)2> addressbook_client:getEmail(carlos).  
% cv@rpi
