summaryrefslogtreecommitdiff
path: root/merge/src/merge_fetch_newentries.erl
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2017-07-06 18:15:08 +0200
committerLinus Nordberg <linus@nordu.net>2017-07-06 18:15:08 +0200
commit489df8ecaf16ca7429eb15b31ffbe6f686f5b0d1 (patch)
tree0bf75621b35d7cecd06f4c12d054e9f9ec47f7a6 /merge/src/merge_fetch_newentries.erl
parent05235680257a54f112c44c7854b3afe8300acd40 (diff)
Diffstat (limited to 'merge/src/merge_fetch_newentries.erl')
-rw-r--r--merge/src/merge_fetch_newentries.erl38
1 files changed, 38 insertions, 0 deletions
diff --git a/merge/src/merge_fetch_newentries.erl b/merge/src/merge_fetch_newentries.erl
new file mode 100644
index 0000000..b45aaec
--- /dev/null
+++ b/merge/src/merge_fetch_newentries.erl
@@ -0,0 +1,38 @@
+%%% Copyright (c) 2017, NORDUnet A/S.
+%%% See LICENSE for licensing information.
+
+-module(merge_fetch_newentries).
+-behaviour(gen_server).
+
+-export([start_link/1, loop/3]).
+-export([init/1, handle_call/3, terminate/2, handle_cast/2, handle_info/2,
+ code_change/3]).
+
+start_link(Args) ->
+ gen_server:start_link(?MODULE, Args, []).
+
+init({Name, Address, Period}) ->
+ lager:info("~p:~p starting", [?MODULE, Name]),
+ ChildPid = spawn_link(?MODULE, loop, [Name, Address, Period]),
+ {ok, ChildPid}.
+
+handle_call(stop, _From, ChildPid) ->
+ lager:info("~p: stopping child process ~p", [?MODULE, ChildPid]),
+ exit(ChildPid, stop),
+ {stop, normal, stopped, nil}.
+
+loop(Name, Address, Period) ->
+ lager:info("~p:~p: asking storage node at ~p for missing entries",
+ [?MODULE, Name, Address]),
+ receive after Period -> ok end,
+ loop(Name, Address, Period).
+
+handle_cast(_Request, State) ->
+ {noreply, State}.
+handle_info(_Info, State) ->
+ {noreply, State}.
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+terminate(_Reason, _State) ->
+ lager:info("~p terminating", [?MODULE]),
+ ok.