Current File : //usr/share/doc/net-snmp/html/group__row__merge.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: row_merge</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="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">row_merge</div>  </div>
<div class="ingroups"><a class="el" href="group__utilities.html">utility_handlers</a></div></div><!--header-->
<div class="contents">

<p>Calls sub handlers with request for one row at a time.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6f6c7faa75692cbdb411c87e571f779b"></a><!-- doxytag: member="row_merge::ROW_MERGE_WAITING" ref="ga6f6c7faa75692cbdb411c87e571f779b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ROW_MERGE_WAITING</b>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5b0c9dbaf2a51721bd6d6555cf363d7d"></a><!-- doxytag: member="row_merge::ROW_MERGE_ACTIVE" ref="ga5b0c9dbaf2a51721bd6d6555cf363d7d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ROW_MERGE_ACTIVE</b>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d125c4dd6e1400f62405e453ae87970"></a><!-- doxytag: member="row_merge::ROW_MERGE_DONE" ref="ga6d125c4dd6e1400f62405e453ae87970" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ROW_MERGE_DONE</b>&#160;&#160;&#160;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20e459e714388efe005219bf1109326f"></a><!-- doxytag: member="row_merge::ROW_MERGE_HEAD" ref="ga20e459e714388efe005219bf1109326f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ROW_MERGE_HEAD</b>&#160;&#160;&#160;3</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></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__row__merge.html#ga5a6fbecc01178c462f6d9d1fb245d25e">netsnmp_get_row_merge_handler</a> (int prefix_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a row_merge handler that can be injected into a given handler chain.  <a href="#ga5a6fbecc01178c462f6d9d1fb245d25e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#gad13148e9889261362cc15cb4022a42b8">netsnmp_register_row_merge</a> (<a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *reginfo)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">functionally the same as calling <a class="el" href="group__handler.html#gacdbdb9d74898a5bf04b0992ea0316aa4" title="register a handler, as defined by the netsnmp_handler_registration pointer.">netsnmp_register_handler()</a> but also injects a row_merge handler at the same time for you.  <a href="#gad13148e9889261362cc15cb4022a42b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetsnmp__row__merge__status__x.html">netsnmp_row_merge_status</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#gaeb1e22a0613e6af7132e9db5b153106c">netsnmp_row_merge_status_get</a> (<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, int create_missing)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">retrieve row_merge_status  <a href="#gaeb1e22a0613e6af7132e9db5b153106c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#ga4ebb0aeaeb22c13a624d0220eace4429">netsnmp_row_merge_status_first</a> (<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)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if this is the first row.  <a href="#ga4ebb0aeaeb22c13a624d0220eace4429"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#gac869c92e841d920660961770000d1ecd">netsnmp_row_merge_status_last</a> (<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)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if this is the last row.  <a href="#gac869c92e841d920660961770000d1ecd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#ga84953221fd2a812c0582bcf750c57b3f">netsnmp_row_merge_helper_handler</a> (<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="mdescLeft">&#160;</td><td class="mdescRight">Implements the row_merge handler.  <a href="#ga84953221fd2a812c0582bcf750c57b3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__row__merge.html#gabdfa2e4118e61eb23a4ef820e6e6f9b9">netsnmp_init_row_merge</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">initializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use.  <a href="#gabdfa2e4118e61eb23a4ef820e6e6f9b9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Calls sub handlers with request for one row at a time. </p>
<p>This helper splits a whole bunch of requests into chunks based on the row index that they refer to, and passes all requests for a given row to the lower handlers. This is useful for handlers that don't want to process multiple rows at the same time, but are happy to iterate through the request list for a single row. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga5a6fbecc01178c462f6d9d1fb245d25e"></a><!-- doxytag: member="row_merge.c::netsnmp_get_row_merge_handler" ref="ga5a6fbecc01178c462f6d9d1fb245d25e" args="(int prefix_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__row__merge.html#ga5a6fbecc01178c462f6d9d1fb245d25e">netsnmp_get_row_merge_handler</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>prefix_len</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns a row_merge handler that can be injected into a given handler chain. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00028">28</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="gabdfa2e4118e61eb23a4ef820e6e6f9b9"></a><!-- doxytag: member="row_merge.c::netsnmp_init_row_merge" ref="gabdfa2e4118e61eb23a4ef820e6e6f9b9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__row__merge.html#gabdfa2e4118e61eb23a4ef820e6e6f9b9">netsnmp_init_row_merge</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 row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00360">360</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="gad13148e9889261362cc15cb4022a42b8"></a><!-- doxytag: member="row_merge.c::netsnmp_register_row_merge" ref="gad13148e9889261362cc15cb4022a42b8" args="(netsnmp_handler_registration *reginfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__row__merge.html#gad13148e9889261362cc15cb4022a42b8">netsnmp_register_row_merge</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *&#160;</td>
          <td class="paramname"><em>reginfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>functionally the same as calling <a class="el" href="group__handler.html#gacdbdb9d74898a5bf04b0992ea0316aa4" title="register a handler, as defined by the netsnmp_handler_registration pointer.">netsnmp_register_handler()</a> but also injects a row_merge handler at the same time for you. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00042">42</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga84953221fd2a812c0582bcf750c57b3f"></a><!-- doxytag: member="row_merge.c::netsnmp_row_merge_helper_handler" ref="ga84953221fd2a812c0582bcf750c57b3f" args="(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__row__merge.html#ga84953221fd2a812c0582bcf750c57b3f">netsnmp_row_merge_helper_handler</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__handler.html#ga77f4225c0e0c1d549e634f58dba3de3d">netsnmp_mib_handler</a> *&#160;</td>
          <td class="paramname"><em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *&#160;</td>
          <td class="paramname"><em>reginfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnetsnmp__request__info__s.html">netsnmp_request_info</a> *&#160;</td>
          <td class="paramname"><em>requests</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements the row_merge handler. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00154">154</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga4ebb0aeaeb22c13a624d0220eace4429"></a><!-- doxytag: member="row_merge.c::netsnmp_row_merge_status_first" ref="ga4ebb0aeaeb22c13a624d0220eace4429" args="(netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__row__merge.html#ga4ebb0aeaeb22c13a624d0220eace4429">netsnmp_row_merge_status_first</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *&#160;</td>
          <td class="paramname"><em>reginfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if this is the first row. </p>
<p>returns 1 if this is the first row for this pass of the handler. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00110">110</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaeb1e22a0613e6af7132e9db5b153106c"></a><!-- doxytag: member="row_merge.c::netsnmp_row_merge_status_get" ref="gaeb1e22a0613e6af7132e9db5b153106c" args="(netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, int create_missing)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnetsnmp__row__merge__status__x.html">netsnmp_row_merge_status</a>* <a class="el" href="group__row__merge.html#gaeb1e22a0613e6af7132e9db5b153106c">netsnmp_row_merge_status_get</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *&#160;</td>
          <td class="paramname"><em>reginfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>create_missing</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>retrieve row_merge_status </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00067">67</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.c</a>.</p>

</div>
</div>
<a class="anchor" id="gac869c92e841d920660961770000d1ecd"></a><!-- doxytag: member="row_merge.c::netsnmp_row_merge_status_last" ref="gac869c92e841d920660961770000d1ecd" args="(netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__row__merge.html#gac869c92e841d920660961770000d1ecd">netsnmp_row_merge_status_last</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__handler.html#gac475ff73806c2d76ebfc78a87d921b8b">netsnmp_handler_registration</a> *&#160;</td>
          <td class="paramname"><em>reginfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if this is the last row. </p>
<p>returns 1 if this is the last row for this pass of the handler. </p>

<p>Definition at line <a class="el" href="row__merge_8c_source.html#l00130">130</a> of file <a class="el" href="row__merge_8c_source.html">row_merge.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>