anchor.diff:  %% possibly used to populate the cache.
   %% Request_node_details() is called in check_state() (i.e. in on_active({cy_shuffle})).
   handle_msg({get_node_details_response, NodeDetails}, {OldCache, Node}=State) ->
  -    ?TRACE_DEBUG("get_node_details_response", []),
       case cyclon_cache:size(OldCache) =< 2 of
           true  ->
  -            %% ?TRACE_DEBUG("get_node_details_response: true", []),
               Pred = node_details:get(NodeDetails, pred),
               Succ = node_details:get(NodeDetails, succ),
               NewCache =
  
positive.code: %% get_node_details and the get_dht_nodes request are repeated every cycle
  %% (TODO is this the intended behaviour?)
  handle_msg({get_dht_nodes_response, Nodes}, {Cache, _Node}=State) ->
      ?TRACE_DEBUG("get_dht_nodes_response", []),
      Size = cyclon_cache:size(Cache),
      case Nodes of
          [] ->
  
negative.code: %%      of them are ignored, as cyclon doesn't use / implements this features.
  -spec notify_change(any(), any(), State::state()) -> {ok, state()}.
  notify_change(_, _, State) ->
      {ok, State}.
  
  
  %% @doc Returns the best result. <br/>
  %%      Called by the gossip module upon {get_values_best} messages.
  %%      Not implemented by gossip_cyclon, use get_subset_rand().
  -spec get_values_best(State::state()) -> {ok, state()}.
  get_values_best(State) ->
      log:log(info, "[ ~w ] get_values_best is not implemented, use get_subset_rand", [?MODULE]),
      {ok, State}.
  
  
  %% @doc Returns all results. <br/>
  %%      Called by the gossip module upon {get_values_all} messages.
  %%      Not implemented by gossip_cyclon, use get_subset_rand().
  -spec get_values_all(State::state()) -> {ok, state()}.
  get_values_all(State) ->
      log:log(info, "[ ~w ] get_values_all is not implemented, use get_subset_rand", [?MODULE]),
      {ok, State}.
  
  
  