-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}.