diff options
author | Guillermo Ramos | 2012-05-12 18:04:27 +0200 |
---|---|---|
committer | Guillermo Ramos | 2012-05-12 18:04:27 +0200 |
commit | 9c9e91e845eb07fda6563c83df3dad5e58b1ef85 (patch) | |
tree | 2220c67438a368c1d845a19303d1edaff9f164fb /erlang | |
parent | 5d8c20c0a91dbd58a1676581c4374ecb67e639a7 (diff) | |
download | 7l-9c9e91e845eb07fda6563c83df3dad5e58b1ef85.tar.gz |
[Erlang] Día 3 (2/2)
Diffstat (limited to 'erlang')
-rw-r--r-- | erlang/server.erl | 2 | ||||
-rw-r--r-- | erlang/translator.erl | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/erlang/server.erl b/erlang/server.erl index 6769b68..2e4aec0 100644 --- a/erlang/server.erl +++ b/erlang/server.erl @@ -2,7 +2,7 @@ -behaviour(gen_server). -export([main/0]). --export([start_link/0, stop/0]). +-export([start_link/0, stop/0, message/1]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). diff --git a/erlang/translator.erl b/erlang/translator.erl new file mode 100644 index 0000000..dd97a69 --- /dev/null +++ b/erlang/translator.erl @@ -0,0 +1,43 @@ +-module(translator). +-behaviour(gen_server). + +-export([start/0, stop/0, translate/1]). +-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, + code_change/3]). + +start() -> + Result = gen_server:start_link({local, translator}, translator, [], []), + io:fwrite("Translator started.~n"), + Result. + +stop() -> + gen_server:cast(translator, shutdown). + +translate(Word) -> + gen_server:call(translator, Word). + + + +init([]) -> {ok, bda}. + +handle_call(Word, _From, _State) -> + io:fwrite("Translator received word ~p.~n", [Word]), + Reply = case Word of + casa -> house; + coche -> car; + _ -> dafuq + end, + {reply, Reply, ok}. + +handle_cast(shutdown, _State) -> + {stop, normal, ok}. + +handle_info(_Info, State) -> + {noreply, State}. + +terminate(normal, _State) -> + io:fwrite("Translator stopping.~n"), + ok. + +code_change(_OldVsn, State, _Extra) -> + {ok, State}. |