summaryrefslogtreecommitdiff
path: root/erlang/translator.erl
blob: dd97a69c302790b1accfa9641d1f19ef7a95f9fa (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
32
33
34
35
36
37
38
39
40
41
42
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}.