stash_cache(3)

NAME
stash_cache - Automatically caches data for certain handlers.

  Functions

netsnmp_stash_cache_info * netsnmp_get_new_stash_cache (void)
netsnmp_mib_handler * netsnmp_get_timed_bare_stash_cache_handler (int timeout, oid *rootoid, size_t rootoid_len)
returns a stash_cache handler that can be injected into a given handler chain (with the specified timeout and root OID values), but *only* if that handler chain explicitly supports stash cache processing.
netsnmp_mib_handler * netsnmp_get_bare_stash_cache_handler (void)
returns a single stash_cache handler that can be injected into a given handler chain (with a fixed timeout), but *only* if that handler chain explicitly supports stash cache processing.
netsnmp_mib_handler * netsnmp_get_stash_cache_handler (void)
returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout.
netsnmp_mib_handler * netsnmp_get_timed_stash_cache_handler (int timeout, oid *rootoid, size_t rootoid_len)
returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a configurable cache timeout.
netsnmp_oid_stash_node ** netsnmp_extract_stash_cache (netsnmp_agent_request_info *reqinfo)
extracts a pointer to the stash_cache info from the reqinfo structure.
int netsnmp_stash_cache_helper (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int _netsnmp_stash_cache_load (netsnmp_cache *cache, void *magic)
updates a given cache depending on whether it needs to or not.
void _netsnmp_stash_cache_free (netsnmp_cache *cache, void *magic)
void netsnmp_init_stash_cache_helper (void)
initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use.

Detailed Description

Automatically caches data for certain handlers.

This handler caches data in an optimized way which may aleviate the need for the lower level handlers to perform as much optimization. Specifically, somewhere in the lower level handlers must be a handler that supports the MODE_GET_STASH operation. Note that the table_iterator helper supports this.

Function Documentation

  int _netsnmp_stash_cache_load (netsnmp_cache * cache, void * magic)

updates a given cache depending on whether it needs to or not.

Definition at line 194 of file stash_cache.c.

References netsnmp_stash_cache_info_s::cache, netsnmp_cache_s::cache_hint, netsnmp_handler_args_s::handler, netsnmp_cache_s::magic, netsnmp_agent_request_info_s::mode, netsnmp_agent_add_list_data(), netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_get_new_stash_cache(), netsnmp_mib_handler_s::next, NULL, netsnmp_handler_args_s::reginfo, netsnmp_handler_args_s::reqinfo, and netsnmp_handler_args_s::requests.

Referenced by netsnmp_get_timed_bare_stash_cache_handler().

  netsnmp_oid_stash_node** netsnmp_extract_stash_cache (netsnmp_agent_request_info * reqinfo)

extracts a pointer to the stash_cache info from the reqinfo structure.

Definition at line 112 of file stash_cache.c.

References netsnmp_agent_get_list_data().

Referenced by netsnmp_stash_to_next_helper(), and netsnmp_table_iterator_helper_handler().

  netsnmp_mib_handler* netsnmp_get_bare_stash_cache_handler (void)

returns a single stash_cache handler that can be injected into a given handler chain (with a fixed timeout), but *only* if that handler chain explicitly supports stash cache processing.

Definition at line 78 of file stash_cache.c.

References netsnmp_get_timed_bare_stash_cache_handler(), and NULL.

Referenced by netsnmp_get_stash_cache_handler().

  netsnmp_mib_handler* netsnmp_get_stash_cache_handler (void)

returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout.

Definition at line 87 of file stash_cache.c.

References netsnmp_get_bare_stash_cache_handler(), netsnmp_get_stash_to_next_handler(), and netsnmp_mib_handler_s::next.

Referenced by netsnmp_init_stash_cache_helper().

  netsnmp_mib_handler* netsnmp_get_timed_bare_stash_cache_handler (int timeout, oid * rootoid, size_t rootoid_len)

returns a stash_cache handler that can be injected into a given handler chain (with the specified timeout and root OID values), but *only* if that handler chain explicitly supports stash cache processing.

Definition at line 44 of file stash_cache.c.

References _netsnmp_stash_cache_free(), _netsnmp_stash_cache_load(), netsnmp_mib_handler_s::myvoid, netsnmp_cache_create(), netsnmp_cache_handler_get(), netsnmp_create_handler(), netsnmp_handler_free(), netsnmp_stash_cache_helper(), netsnmp_mib_handler_s::next, and NULL.

Referenced by netsnmp_get_bare_stash_cache_handler(), and netsnmp_get_timed_stash_cache_handler().

  netsnmp_mib_handler* netsnmp_get_timed_stash_cache_handler (int timeout, oid * rootoid, size_t rootoid_len)

returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a configurable cache timeout.

Definition at line 100 of file stash_cache.c.

References netsnmp_get_stash_to_next_handler(), netsnmp_get_timed_bare_stash_cache_handler(), and netsnmp_mib_handler_s::next.

  void netsnmp_init_stash_cache_helper (void)

initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use.

Definition at line 237 of file stash_cache.c.

References netsnmp_get_stash_cache_handler(), and netsnmp_register_handler_by_name().

Referenced by netsnmp_init_helpers().