summaryrefslogtreecommitdiff
path: root/erlang
diff options
context:
space:
mode:
authorGuillermo Ramos2012-05-12 18:04:27 +0200
committerGuillermo Ramos2012-05-12 18:04:27 +0200
commit9c9e91e845eb07fda6563c83df3dad5e58b1ef85 (patch)
tree2220c67438a368c1d845a19303d1edaff9f164fb /erlang
parent5d8c20c0a91dbd58a1676581c4374ecb67e639a7 (diff)
download7l-9c9e91e845eb07fda6563c83df3dad5e58b1ef85.tar.gz
[Erlang] Día 3 (2/2)
Diffstat (limited to 'erlang')
-rw-r--r--erlang/server.erl2
-rw-r--r--erlang/translator.erl43
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}.