about summary refs log tree commit diff
path: root/users/tazjin/presentations/erlang-2016/src/hello_server2.erl
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-06-26T19·38+0100
committertazjin <mail@tazj.in>2020-06-26T19·51+0000
commit2e3b03b5ae04cc9d4da0001aff07962bf4107d42 (patch)
tree75d929acb15720bc8eb1182d105e2ecaa2626ba0 /users/tazjin/presentations/erlang-2016/src/hello_server2.erl
parent1d0e421cb86861c64b58d5aa66dce295ffe28af5 (diff)
chore(tazjin): Move my presentations to my user directory r/1090
Change-Id: I72b25680e7167c3a55477111c28b1d4936c60e2c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/606
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'users/tazjin/presentations/erlang-2016/src/hello_server2.erl')
-rw-r--r--users/tazjin/presentations/erlang-2016/src/hello_server2.erl36
1 files changed, 36 insertions, 0 deletions
diff --git a/users/tazjin/presentations/erlang-2016/src/hello_server2.erl b/users/tazjin/presentations/erlang-2016/src/hello_server2.erl
new file mode 100644
index 000000000000..24bb934ee503
--- /dev/null
+++ b/users/tazjin/presentations/erlang-2016/src/hello_server2.erl
@@ -0,0 +1,36 @@
+-module(hello_server2).
+-behaviour(gen_server).
+-compile(export_all).
+
+%%% Start callback for supervisor
+start_link() ->
+    gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
+
+%%% gen_server callbacks
+
+init([]) ->
+    {ok, sets:new()}.
+
+handle_call({greet, Name}, _From, State) ->
+    io:format("Hello ~s!~n", [Name]),
+    NewState = sets:add_element(Name, State),
+    {reply, ok, NewState};
+
+handle_call({bye, Name}, _From, State) ->
+    io:format("Goodbye ~s!~n", [Name]),
+    NewState = sets:del_element(Name, State),
+    {reply, ok, NewState}.
+
+terminate(normal, State) ->
+    [io:format("Goodbye ~s!~n", [Name]) || Name <- State],
+    ok.
+
+%%% Unused gen_server callbacks
+code_change(_OldVsn, State, _Extra) ->
+    {ok, State}.
+
+handle_info(_Info, State) ->
+    {noreply, State}.
+
+handle_cast(_Request, State) ->
+    {noreply, State}.