anchor.diff:  		ets:insert(Cache, {Key, Rep, timestamp()}),
   		{Rep, maybe_start_cache_gc_timer(State)};
   	    [{Key, Rep, _}] ->
  -		?vdebug("lookup -> found in cache", []), 
  +		?vtrace("lookup -> found in cache - update timestamp", []),
   		ets:update_element(Cache, Key, {3, timestamp()}),
   		{Rep, State}
   	end,
  
positive.code: 		 IsValid).
  
  get_cacheopt_gclimit(Cache, CacheOpts) ->
      IsValid = fun(Limit) when ((is_integer(Limit) andalso (Limit > 0)) orelse 
  			       (Limit =:= infinity)) ->
  		      true;
  		 (_) ->
  		      false
  	      end,
      get_cacheopt(Cache, gclimit, CacheOpts, 
  		 infinity, ?DEFAULT_CACHE_GCLIMIT, 
  		 IsValid).
  
  get_cacheopt_age(Cache, CacheOpts) ->
  
negative.code: maybe_cache_lookup(Cache, Key) ->
      ets:lookup(Cache, Key).
  
  
  cache_info(?NO_CACHE) ->
      undefined;
  cache_info(Cache) ->
      try
          begin
              [
               {memory, ets:info(Cache, memory)},
               {size,   ets:info(Cache, size)},
               {stats,  ets:info(Cache, stats)}
              ]
          end
      catch
          _:_:_ ->
              undefined
      end.
  
  
  timestamp() ->
      snmp_misc:now(ms).
  
  
  maybe_send_gc_result(S, Result) ->
      maybe_send_gc_event(S, gc_result, Result).
  
  maybe_send_gc_event(#state{cache_sub = Sub}, Ev, Info) when is_pid(Sub) ->
      Sub ! {self(), Ev, Info};
  maybe_send_gc_event(_, _, _) ->
      ok.
  
  
  %% ----------------------------------------------------------------
  