Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 749e483016bbc41594aeb77eb13e3491 > files > 991

xrootd-doc-3.3.5-1.fc18.noarch.rpm

<!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"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>xrootd: XrdSys::IOEvents::CallBack Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">xrootd
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceXrdSys.html">XrdSys</a></li><li class="navelem"><a class="el" href="namespaceXrdSys_1_1IOEvents.html">IOEvents</a></li><li class="navelem"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html">CallBack</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classXrdSys_1_1IOEvents_1_1CallBack-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">XrdSys::IOEvents::CallBack Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="XrdSysIOEvents_8hh_source.html">XrdSysIOEvents.hh</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ae8d3c385a6461cd3a7a1af05353aafbb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbb">EventType</a> { <a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbba2948f72c4149902781b7ca37e986fe09">ReadyToRead</a> = 0x01, 
<a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbba5a68d4c3956cb2c4019c29e31613f814">ReadTimeOut</a> = 0x02, 
<a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbba25c4bf1fbe8510310bdd4a3210fe7aff">ReadyToWrite</a> = 0x04, 
<a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbba5feff17606351c38247f2f6b9af90eb7">WriteTimeOut</a> = 0x08
 }</td></tr>
<tr class="memdesc:ae8d3c385a6461cd3a7a1af05353aafbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Events that may cause a callback object to be activated.  <a href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbb">More...</a><br/></td></tr>
<tr class="separator:ae8d3c385a6461cd3a7a1af05353aafbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a602e84319625e95f085159671f13a957"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#a602e84319625e95f085159671f13a957">Event</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *chP, void *cbArg, int evFlags)=0</td></tr>
<tr class="separator:a602e84319625e95f085159671f13a957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4d26d94865998dc8ad63c31fef20d3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#a2d4d26d94865998dc8ad63c31fef20d3">Fatal</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *chP, void *cbArg, int eNum, const char *eTxt)</td></tr>
<tr class="separator:a2d4d26d94865998dc8ad63c31fef20d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7e8992d729ae98bf70f4f238ef733bd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ab7e8992d729ae98bf70f4f238ef733bd">Stop</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *chP, void *cbArg)</td></tr>
<tr class="separator:ab7e8992d729ae98bf70f4f238ef733bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6806cb7d8bdf5fe8cd7a86da1ba7bf9d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#a6806cb7d8bdf5fe8cd7a86da1ba7bf9d">CallBack</a> ()</td></tr>
<tr class="memdesc:a6806cb7d8bdf5fe8cd7a86da1ba7bf9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a6806cb7d8bdf5fe8cd7a86da1ba7bf9d">More...</a><br/></td></tr>
<tr class="separator:a6806cb7d8bdf5fe8cd7a86da1ba7bf9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b805e67ab55bf3076e686af5f216e95"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#a7b805e67ab55bf3076e686af5f216e95">~CallBack</a> ()</td></tr>
<tr class="memdesc:a7b805e67ab55bf3076e686af5f216e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a7b805e67ab55bf3076e686af5f216e95">More...</a><br/></td></tr>
<tr class="separator:a7b805e67ab55bf3076e686af5f216e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="ae8d3c385a6461cd3a7a1af05353aafbb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classXrdSys_1_1IOEvents_1_1CallBack.html#ae8d3c385a6461cd3a7a1af05353aafbb">XrdSys::IOEvents::CallBack::EventType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Events that may cause a callback object to be activated. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ae8d3c385a6461cd3a7a1af05353aafbba2948f72c4149902781b7ca37e986fe09"></a>ReadyToRead</em>&nbsp;</td><td class="fielddoc">
<p>New data has arrived. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ae8d3c385a6461cd3a7a1af05353aafbba5a68d4c3956cb2c4019c29e31613f814"></a>ReadTimeOut</em>&nbsp;</td><td class="fielddoc">
<p>Read timeout. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ae8d3c385a6461cd3a7a1af05353aafbba25c4bf1fbe8510310bdd4a3210fe7aff"></a>ReadyToWrite</em>&nbsp;</td><td class="fielddoc">
<p>Writing won't block. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ae8d3c385a6461cd3a7a1af05353aafbba5feff17606351c38247f2f6b9af90eb7"></a>WriteTimeOut</em>&nbsp;</td><td class="fielddoc">
<p>Write timeout. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6806cb7d8bdf5fe8cd7a86da1ba7bf9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">XrdSys::IOEvents::CallBack::CallBack </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a7b805e67ab55bf3076e686af5f216e95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual XrdSys::IOEvents::CallBack::~CallBack </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a602e84319625e95f085159671f13a957"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool XrdSys::IOEvents::CallBack::Event </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>chP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cbArg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>evFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Handle event notification. A method must be supplied. The enable/disable status of the channel is not modified. To change the status, use the channel's Enable() and Disable() method prior to returning. After return, the current channel's status is used to determine how it will behave. The channel may not be deleted by the callback function! Event loop callbacks define a hazardous programming model. If you do not have a well defined threading model, you should restrict yourself to dealing only with the passed channel object in the callback so as to avoid deadlocks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">chP</td><td>the associated channel causing the callback. </td></tr>
    <tr><td class="paramname">cbArg</td><td>the callback argument specified for the channel. </td></tr>
    <tr><td class="paramname">evFlags</td><td>events that caused this callback to be invoked. More than one event may be indicated (see EventType above).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true Resume handling the channel with current status. false Disable the channel and remove it from associated poller. </dd></dl>

</div>
</div>
<a class="anchor" id="a2d4d26d94865998dc8ad63c31fef20d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void XrdSys::IOEvents::CallBack::Fatal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>chP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cbArg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>eNum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>eTxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Handle fatal error notification. This method is called only when error events are specifically enabled (see Enable() for admonitions). It is passed the reason for the error. Upon return, the channel is disabled but stays attached to the poller so that it can be revitalized with SetFD(). You should replace this method if you specifically enable error events.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">chP</td><td>the associated channel causing the callback. </td></tr>
    <tr><td class="paramname">cbArg</td><td>the callback argument specified for the channel. </td></tr>
    <tr><td class="paramname">eNum</td><td>the errno associated with the error. </td></tr>
    <tr><td class="paramname">eTxt</td><td>descriptive name of the operation encountering the error. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab7e8992d729ae98bf70f4f238ef733bd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void XrdSys::IOEvents::CallBack::Stop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>chP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cbArg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Handle poller stop notification. This method is called only when the poller is stopped and the channel enabled the stop event. You should should replace this method if you specifically enable the stop event. You must not invoke channel methods in this callback, otherwise the results are unpredictable.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">chP</td><td>the associated channel causing the callback. </td></tr>
    <tr><td class="paramname">cbArg</td><td>the callback argument specified for the channel. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="XrdSysIOEvents_8hh_source.html">XrdSysIOEvents.hh</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<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.8.3.1
</small></address>
</body>
</html>