anchor.diff:      Reply = ok,
       {reply, Reply, State}.
   
  +%% @private
   handle_cast(_Msg, State) ->
       {noreply, State}.
   
  +%% @private
   handle_info(persist, S) ->
       persist_to_disk(),
       erlang:send_after(?PERSIST_TIME, self(), persist),
  
positive.code: handle_info(_Info, State) ->
      {noreply, State}.
  
  
  terminate(Reason, _State) when Reason =:= normal; Reason =:= shutdown ->
      persist_to_disk(),
      ok;
  terminate(_Reason, _State) ->
      ok.
  
  code_change(_OldVsn, State, _Extra) ->
      {ok, State}.
  
  upgrade(1, St) ->
      upgrade1(St).
  
  %% Upgrade from version 1
  upgrade1(St) ->
      [{state, St},
       {uploaded, 0},
       {downloaded, 0}].
  
negative.code: -define(SERVER, ?MODULE).
  -define(PERSIST_TIME, timer:seconds(300)). % Every 300 secs, may be done configurable.
  -ignore_xref([{start_link, 0}]).
  
  %%====================================================================
  
  %% @doc Start up the server
  %% @end
  -spec start_link() -> {ok, pid()} | ignore | {error, term()}.
  