Current File : //usr/share/doc/net-snmp/html/group__stash__cache.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>net-snmp: stash_cache</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">net-snmp
   &#160;<span id="projectnumber">5.4.1</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">stash_cache</div>  </div>
<div class="ingroups"><a class="el" href="group__handler.html">Net-SNMP Agent handler and extensibility API</a></div></div><!--header-->
<div class="contents">

<p>Automatically caches data for certain handlers.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafef041e648bf1ebc59440f03657f50b1"></a><!-- doxytag: member="stash_cache::netsnmp_get_new_stash_cache" ref="gafef041e648bf1ebc59440f03657f50b1" args="(void)" -->
<a class="el" href="structnetsnmp__stash__cache__info__s.html">netsnmp_stash_cache_info</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>netsnmp_get_new_stash_cache</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#ga45f64f391cc2bc8ccc33b0208e5bb12d">netsnmp_get_timed_bare_stash_cache_handler</a> (int timeout, oid *rootoid, size_t rootoid_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">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.  <a href="#ga45f64f391cc2bc8ccc33b0208e5bb12d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#ga0295f6299cbcfdfc63726cff7c8b5a92">netsnmp_get_bare_stash_cache_handler</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">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.  <a href="#ga0295f6299cbcfdfc63726cff7c8b5a92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#gac5cd7baa84ff4f0398e15daa5d112e1f">netsnmp_get_stash_cache_handler</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout.  <a href="#gac5cd7baa84ff4f0398e15daa5d112e1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#gaa17f6ceaeb5f178f11f51421d6e4adc4">netsnmp_get_timed_stash_cache_handler</a> (int timeout, oid *rootoid, size_t rootoid_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a configurable cache timeout.  <a href="#gaa17f6ceaeb5f178f11f51421d6e4adc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetsnmp__oid__stash__node__s.html">netsnmp_oid_stash_node</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#ga9c9dcbe0bb7fb4ba2623a27d943334db">netsnmp_extract_stash_cache</a> (<a class="el" href="structnetsnmp__agent__request__info__s.html">netsnmp_agent_request_info</a> *reqinfo)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">extracts a pointer to the stash_cache info from the reqinfo structure.  <a href="#ga9c9dcbe0bb7fb4ba2623a27d943334db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga04b180e7bfe2982ce93d870afa73d940"></a><!-- doxytag: member="stash_cache::netsnmp_stash_cache_helper" ref="ga04b180e7bfe2982ce93d870afa73d940" args="(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>netsnmp_stash_cache_helper</b> (<a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *handler, <a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *reginfo, <a class="el" href="structnetsnmp__agent__request__info__s.html">netsnmp_agent_request_info</a> *reqinfo, <a class="el" href="structnetsnmp__request__info__s.html">netsnmp_request_info</a> *requests)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#gab63dd00d87c13dd05bc9c4b2056b507a">_netsnmp_stash_cache_load</a> (<a class="el" href="structnetsnmp__cache__s.html">netsnmp_cache</a> *cache, void *magic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">updates a given cache depending on whether it needs to or not.  <a href="#gab63dd00d87c13dd05bc9c4b2056b507a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30fb1e7e5b5c6683d49c8bfabd4c251c"></a><!-- doxytag: member="stash_cache::_netsnmp_stash_cache_free" ref="ga30fb1e7e5b5c6683d49c8bfabd4c251c" args="(netsnmp_cache *cache, void *magic)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>_netsnmp_stash_cache_free</b> (<a class="el" href="structnetsnmp__cache__s.html">netsnmp_cache</a> *cache, void *magic)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__stash__cache.html#ga1c63c8751fa6b9faa28bddc990d6c42a">netsnmp_init_stash_cache_helper</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use.  <a href="#ga1c63c8751fa6b9faa28bddc990d6c42a"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Automatically caches data for certain handlers. </p>
<p>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. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gab63dd00d87c13dd05bc9c4b2056b507a"></a><!-- doxytag: member="stash_cache.c::_netsnmp_stash_cache_load" ref="gab63dd00d87c13dd05bc9c4b2056b507a" args="(netsnmp_cache *cache, void *magic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__stash__cache.html#gab63dd00d87c13dd05bc9c4b2056b507a">_netsnmp_stash_cache_load</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnetsnmp__cache__s.html">netsnmp_cache</a> *&#160;</td>
          <td class="paramname"><em>cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>magic</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>updates a given cache depending on whether it needs to or not. </p>

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00190">190</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c9dcbe0bb7fb4ba2623a27d943334db"></a><!-- doxytag: member="stash_cache.c::netsnmp_extract_stash_cache" ref="ga9c9dcbe0bb7fb4ba2623a27d943334db" args="(netsnmp_agent_request_info *reqinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnetsnmp__oid__stash__node__s.html">netsnmp_oid_stash_node</a>** <a class="el" href="group__stash__cache.html#ga9c9dcbe0bb7fb4ba2623a27d943334db">netsnmp_extract_stash_cache</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnetsnmp__agent__request__info__s.html">netsnmp_agent_request_info</a> *&#160;</td>
          <td class="paramname"><em>reqinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>extracts a pointer to the stash_cache info from the reqinfo structure. </p>

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00112">112</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga0295f6299cbcfdfc63726cff7c8b5a92"></a><!-- doxytag: member="stash_cache.c::netsnmp_get_bare_stash_cache_handler" ref="ga0295f6299cbcfdfc63726cff7c8b5a92" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a>* <a class="el" href="group__stash__cache.html#ga0295f6299cbcfdfc63726cff7c8b5a92">netsnmp_get_bare_stash_cache_handler</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>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. </p>

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00078">78</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="gac5cd7baa84ff4f0398e15daa5d112e1f"></a><!-- doxytag: member="stash_cache.c::netsnmp_get_stash_cache_handler" ref="gac5cd7baa84ff4f0398e15daa5d112e1f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a>* <a class="el" href="group__stash__cache.html#gac5cd7baa84ff4f0398e15daa5d112e1f">netsnmp_get_stash_cache_handler</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00087">87</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga45f64f391cc2bc8ccc33b0208e5bb12d"></a><!-- doxytag: member="stash_cache.c::netsnmp_get_timed_bare_stash_cache_handler" ref="ga45f64f391cc2bc8ccc33b0208e5bb12d" args="(int timeout, oid *rootoid, size_t rootoid_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a>* <a class="el" href="group__stash__cache.html#ga45f64f391cc2bc8ccc33b0208e5bb12d">netsnmp_get_timed_bare_stash_cache_handler</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oid *&#160;</td>
          <td class="paramname"><em>rootoid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rootoid_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>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. </p>

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00044">44</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaa17f6ceaeb5f178f11f51421d6e4adc4"></a><!-- doxytag: member="stash_cache.c::netsnmp_get_timed_stash_cache_handler" ref="gaa17f6ceaeb5f178f11f51421d6e4adc4" args="(int timeout, oid *rootoid, size_t rootoid_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a>* <a class="el" href="group__stash__cache.html#gaa17f6ceaeb5f178f11f51421d6e4adc4">netsnmp_get_timed_stash_cache_handler</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oid *&#160;</td>
          <td class="paramname"><em>rootoid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rootoid_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00100">100</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga1c63c8751fa6b9faa28bddc990d6c42a"></a><!-- doxytag: member="stash_cache.c::netsnmp_init_stash_cache_helper" ref="ga1c63c8751fa6b9faa28bddc990d6c42a" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__stash__cache.html#ga1c63c8751fa6b9faa28bddc990d6c42a">netsnmp_init_stash_cache_helper</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Definition at line <a class="el" href="stash__cache_8c_source.html#l00233">233</a> of file <a class="el" href="stash__cache_8c_source.html">stash_cache.c</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>