Sophie

Sophie

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

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::Poller 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_1Poller.html">Poller</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classXrdSys_1_1IOEvents_1_1Poller-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">XrdSys::IOEvents::Poller 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>
<div class="dynheader">
Collaboration diagram for XrdSys::IOEvents::Poller:</div>
<div class="dyncontent">
<div class="center"><img src="classXrdSys_1_1IOEvents_1_1Poller__coll__graph.png" border="0" usemap="#XrdSys_1_1IOEvents_1_1Poller_coll__map" alt="Collaboration graph"/></div>
<map name="XrdSys_1_1IOEvents_1_1Poller_coll__map" id="XrdSys_1_1IOEvents_1_1Poller_coll__map">
<area shape="rect" id="node4" href="classXrdSys_1_1IOEvents_1_1Channel.html" title="XrdSys::IOEvents::Channel" alt="" coords="803,84,987,111"/><area shape="rect" id="node2" href="classXrdSysMutex.html" title="XrdSysMutex" alt="" coords="269,75,371,101"/><area shape="rect" id="node11" href="classXrdSysRecMutex.html" title="XrdSysRecMutex" alt="" coords="539,56,664,83"/><area shape="rect" id="node8" href="structXrdSys_1_1IOEvents_1_1Channel_1_1dlQ.html" title="XrdSys::IOEvents::Channel::dlQ" alt="" coords="1081,84,1293,111"/><area shape="rect" id="node6" href="classXrdSys_1_1IOEvents_1_1CallBack.html" title="XrdSys::IOEvents::CallBack" alt="" coords="507,5,696,32"/><area shape="rect" id="node15" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html" title="XrdSys::IOEvents::Poller\l::PipeData" alt="" coords="235,143,405,185"/><area shape="rect" id="node17" href="classXrdSysSemaphore.html" title="XrdSysSemaphore" alt="" coords="5,151,136,177"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html">PipeData</a></td></tr>
<tr class="separator:"><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:aec4462a6ee6ac1adcd8b3b763590cb8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aec4462a6ee6ac1adcd8b3b763590cb8a">Stop</a> ()</td></tr>
<tr class="separator:aec4462a6ee6ac1adcd8b3b763590cb8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44f7226e9ca749a4906fa1c4172d7db5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a44f7226e9ca749a4906fa1c4172d7db5">Poller</a> (int cFD, int rFD)</td></tr>
<tr class="separator:a44f7226e9ca749a4906fa1c4172d7db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8857c87282c2775012fb3ce4d2bfdc4f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a8857c87282c2775012fb3ce4d2bfdc4f">~Poller</a> ()</td></tr>
<tr class="memdesc:a8857c87282c2775012fb3ce4d2bfdc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aec4462a6ee6ac1adcd8b3b763590cb8a">Stop()</a> is effecively called when this object is deleted.  <a href="#a8857c87282c2775012fb3ce4d2bfdc4f">More...</a><br/></td></tr>
<tr class="separator:a8857c87282c2775012fb3ce4d2bfdc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a61fab57eac0f28c68c0c88bfced34250"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a61fab57eac0f28c68c0c88bfced34250">Create</a> (int &amp;eNum, const char **eTxt=0)</td></tr>
<tr class="separator:a61fab57eac0f28c68c0c88bfced34250"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:abdb381192651ba1c8271087a1e1a1db7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#abdb381192651ba1c8271087a1e1a1db7">CbkTMO</a> ()</td></tr>
<tr class="separator:abdb381192651ba1c8271087a1e1a1db7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78331a9db4c7341d99416041209f76ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a78331a9db4c7341d99416041209f76ef">CbkXeq</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, int events, int eNum, const char *eTxt)</td></tr>
<tr class="separator:a78331a9db4c7341d99416041209f76ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a155b3f966559f3464dcd3888e631e42e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a155b3f966559f3464dcd3888e631e42e">GetFault</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:a155b3f966559f3464dcd3888e631e42e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f149d5b3c7df9f8c4c089e48f4110db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a2f149d5b3c7df9f8c4c089e48f4110db">GetPollEnt</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:a2f149d5b3c7df9f8c4c089e48f4110db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cbf42cf0029ae3ec726ae8ac1de5845"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a9cbf42cf0029ae3ec726ae8ac1de5845">GetRequest</a> ()</td></tr>
<tr class="separator:a9cbf42cf0029ae3ec726ae8ac1de5845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8b54eb30fb256f870deb37166843f1e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#af8b54eb30fb256f870deb37166843f1e">Init</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, int &amp;eNum, const char **eTxt, bool &amp;isLockd)</td></tr>
<tr class="separator:af8b54eb30fb256f870deb37166843f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ccc55aa41346893da8eb14b57ac7ca6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a1ccc55aa41346893da8eb14b57ac7ca6">LockChannel</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:a1ccc55aa41346893da8eb14b57ac7ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac124a50b15ff7433fd0dd0b0977c1627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ac124a50b15ff7433fd0dd0b0977c1627">Poll2Enum</a> (short events)</td></tr>
<tr class="separator:ac124a50b15ff7433fd0dd0b0977c1627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4314cecf0a9b9355a4d678eb9a66575"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aa4314cecf0a9b9355a4d678eb9a66575">SendCmd</a> (<a class="el" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html">PipeData</a> &amp;cmd)</td></tr>
<tr class="separator:aa4314cecf0a9b9355a4d678eb9a66575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2ed179a0422e3a2555fa8e22add166d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#af2ed179a0422e3a2555fa8e22add166d">SetPollEnt</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, int ptEnt)</td></tr>
<tr class="separator:af2ed179a0422e3a2555fa8e22add166d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77abf54a953424002ddb1e244fee3bbd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a77abf54a953424002ddb1e244fee3bbd">TmoAdd</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:a77abf54a953424002ddb1e244fee3bbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a9435a6ecbfa33c3830748815888291"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a5a9435a6ecbfa33c3830748815888291">TmoDel</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:a5a9435a6ecbfa33c3830748815888291"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d11c40c83b6710b239fe9f186dd3781"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a8d11c40c83b6710b239fe9f186dd3781">TmoGet</a> ()</td></tr>
<tr class="separator:a8d11c40c83b6710b239fe9f186dd3781"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae7a4844cb30fb0ea23a86fd5f8fbc04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aae7a4844cb30fb0ea23a86fd5f8fbc04">UnLockChannel</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:aae7a4844cb30fb0ea23a86fd5f8fbc04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f81a77f11aeb663cdbe07214bf5d01d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a6f81a77f11aeb663cdbe07214bf5d01d">Begin</a> (<a class="el" href="classXrdSysSemaphore.html">XrdSysSemaphore</a> *syncp, int &amp;rc, const char **eTxt)=0</td></tr>
<tr class="separator:a6f81a77f11aeb663cdbe07214bf5d01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca1a46bc809ce497879a3a694afbe18a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aca1a46bc809ce497879a3a694afbe18a">Exclude</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, bool &amp;isLocked, bool dover=1)=0</td></tr>
<tr class="separator:aca1a46bc809ce497879a3a694afbe18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06142129debd3638170b6a33cc7a5065"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a06142129debd3638170b6a33cc7a5065">Include</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, int &amp;eNum, const char **eTxt, bool &amp;isLocked)=0</td></tr>
<tr class="separator:a06142129debd3638170b6a33cc7a5065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a030f48b94b9632bdad3b21578caed155"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a030f48b94b9632bdad3b21578caed155">Modify</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, int &amp;eNum, const char **eTxt, bool &amp;isLocked)=0</td></tr>
<tr class="separator:a030f48b94b9632bdad3b21578caed155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79ba5ab8a162d22debda99894b45454"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ab79ba5ab8a162d22debda99894b45454">Shutdown</a> ()=0</td></tr>
<tr class="separator:ab79ba5ab8a162d22debda99894b45454"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a190257c89b73851cdcffec6669676681"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a190257c89b73851cdcffec6669676681">attBase</a></td></tr>
<tr class="separator:a190257c89b73851cdcffec6669676681"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a298f2a23394400db1f8d4cdc9eb0d06c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a298f2a23394400db1f8d4cdc9eb0d06c">tmoBase</a></td></tr>
<tr class="separator:a298f2a23394400db1f8d4cdc9eb0d06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a400146b6d07469dc08543b768cc877ba"><td class="memItemLeft" align="right" valign="top">pthread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a400146b6d07469dc08543b768cc877ba">pollTid</a></td></tr>
<tr class="separator:a400146b6d07469dc08543b768cc877ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c8834db84db37f77e438a1766b7037b"><td class="memItemLeft" align="right" valign="top">struct pollfd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a6c8834db84db37f77e438a1766b7037b">pipePoll</a></td></tr>
<tr class="separator:a6c8834db84db37f77e438a1766b7037b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9805d7a56ad50654327ef4044ac8d357"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a9805d7a56ad50654327ef4044ac8d357">cmdFD</a></td></tr>
<tr class="separator:a9805d7a56ad50654327ef4044ac8d357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33bb3d7027266c8632e36b93b74d035a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a33bb3d7027266c8632e36b93b74d035a">reqFD</a></td></tr>
<tr class="separator:a33bb3d7027266c8632e36b93b74d035a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad77d8b8ad1beea2e6801a71b88b9fcc4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html">PipeData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ad77d8b8ad1beea2e6801a71b88b9fcc4">reqBuff</a></td></tr>
<tr class="separator:ad77d8b8ad1beea2e6801a71b88b9fcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05aba238e465308c5487a53c764bbe2e"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a05aba238e465308c5487a53c764bbe2e">pipeBuff</a></td></tr>
<tr class="separator:a05aba238e465308c5487a53c764bbe2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb3dd62f8bc500d01c153a1608ea4e51"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#abb3dd62f8bc500d01c153a1608ea4e51">pipeBlen</a></td></tr>
<tr class="separator:abb3dd62f8bc500d01c153a1608ea4e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c75d7fd45f14d925d3d5e4a8c2c04b6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a1c75d7fd45f14d925d3d5e4a8c2c04b6">wakePend</a></td></tr>
<tr class="separator:a1c75d7fd45f14d925d3d5e4a8c2c04b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae492d12390e4a3b86a9535ae54dddf73"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ae492d12390e4a3b86a9535ae54dddf73">chDead</a></td></tr>
<tr class="separator:ae492d12390e4a3b86a9535ae54dddf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:a9dbe07d2999c04ffb8f88c7efd9a76bd"><td class="memItemLeft" align="right" valign="top">static time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a9dbe07d2999c04ffb8f88c7efd9a76bd">maxTime</a></td></tr>
<tr class="separator:a9dbe07d2999c04ffb8f88c7efd9a76bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:abb9c477d7086f2adf4b8e479e516f77b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#abb9c477d7086f2adf4b8e479e516f77b">Attach</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP)</td></tr>
<tr class="separator:abb9c477d7086f2adf4b8e479e516f77b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2b70275e16ce018c0944bc8bc351020"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#af2b70275e16ce018c0944bc8bc351020">Detach</a> (<a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *cP, bool &amp;isLocked, bool keep=true)</td></tr>
<tr class="separator:af2b70275e16ce018c0944bc8bc351020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc1bea4d942f08152fad8e09cc1c643c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#acc1bea4d942f08152fad8e09cc1c643c">WakeUp</a> ()</td></tr>
<tr class="separator:acc1bea4d942f08152fad8e09cc1c643c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a66206c2ac758b14e160175e858d0de1c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a66206c2ac758b14e160175e858d0de1c">newPoller</a> (int pFD[2], int &amp;eNum, const char **eTxt)</td></tr>
<tr class="separator:a66206c2ac758b14e160175e858d0de1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:adf179d294e8eb581000fba2ed148f3d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#adf179d294e8eb581000fba2ed148f3d9">adMutex</a></td></tr>
<tr class="separator:adf179d294e8eb581000fba2ed148f3d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85ddf036023930cc254247cc395bd73a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a85ddf036023930cc254247cc395bd73a">toMutex</a></td></tr>
<tr class="separator:a85ddf036023930cc254247cc395bd73a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ac69850585196b98388d4e882833018dd"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ac69850585196b98388d4e882833018dd">BootStrap</a></td></tr>
<tr class="separator:ac69850585196b98388d4e882833018dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac47342240f21ce36f47485e4ab41a10d"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#ac47342240f21ce36f47485e4ab41a10d">Channel</a></td></tr>
<tr class="separator:ac47342240f21ce36f47485e4ab41a10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Define a poller object interface. A poller fields and dispatches event callbacks. An actual instance of a poller object is obtained by using the <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a61fab57eac0f28c68c0c88bfced34250">Create()</a> method. You cannot simply create an instance of this object using new or in-place declaration since it is abstract. Any number of these objects may created. Each creation spawns a polling thread. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a44f7226e9ca749a4906fa1c4172d7db5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XrdSys::IOEvents::Poller::Poller </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cFD</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rFD</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cFD</td><td>The file descriptor to send commands to the poll thread. </td></tr>
    <tr><td class="paramname">rFD</td><td>The file descriptor to recv commands in the poll thread. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8857c87282c2775012fb3ce4d2bfdc4f"></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::Poller::~Poller </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. <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aec4462a6ee6ac1adcd8b3b763590cb8a">Stop()</a> is effecively called when this object is deleted. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abb9c477d7086f2adf4b8e479e516f77b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::Attach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6f81a77f11aeb663cdbe07214bf5d01d"></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::Poller::Begin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSysSemaphore.html">XrdSysSemaphore</a> *&#160;</td>
          <td class="paramname"><em>syncp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>rc</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">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Start the polling event loop. An implementation must be supplied. <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a6f81a77f11aeb663cdbe07214bf5d01d">Begin()</a> is called via the internal BootStrap class from a new thread. </p>

</div>
</div>
<a class="anchor" id="abdb381192651ba1c8271087a1e1a1db7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::CbkTMO </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a78331a9db4c7341d99416041209f76ef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool XrdSys::IOEvents::Poller::CbkXeq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>events</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">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a61fab57eac0f28c68c0c88bfced34250"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a>* XrdSys::IOEvents::Poller::Create </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#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> = <code>0</code>&#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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Create a specialized instance of a poller object, initialize it, and start the polling process. You must call <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#a61fab57eac0f28c68c0c88bfced34250">Create()</a> to obtain a specialized poller.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eNum</td><td>Place where errno is placed upon failure. </td></tr>
    <tr><td class="paramname">eTxt</td><td>Place where a pointer to the description of the failing operation is to be set. If null, no description is returned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>!0 <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a> successfully created and started. eNum contains zero. eTxt if not null contains a null string. The returned value is a pointer to the <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a> object. 0 <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a> could not be created. eNum contains the associated errno value. eTxt if not null contains the failing operation. </dd></dl>

</div>
</div>
<a class="anchor" id="af2b70275e16ce018c0944bc8bc351020"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::Detach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>isLocked</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>keep</em> = <code>true</code>&#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">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aca1a46bc809ce497879a3a694afbe18a"></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::Poller::Exclude </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>isLocked</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>dover</em> = <code>1</code>&#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">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Remove a channel to the poll set. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false. </p>

</div>
</div>
<a class="anchor" id="a155b3f966559f3464dcd3888e631e42e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::GetFault </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html#a01e0c9d931b0dbbd46f7d583bd2bf9f4">XrdSys::IOEvents::Channel::chFault</a>.</p>

</div>
</div>
<a class="anchor" id="a2f149d5b3c7df9f8c4c089e48f4110db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::GetPollEnt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html#a4f1323b3ed3086c57961bbe424149031">XrdSys::IOEvents::Channel::pollEnt</a>.</p>

</div>
</div>
<a class="anchor" id="a9cbf42cf0029ae3ec726ae8ac1de5845"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::GetRequest </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a06142129debd3638170b6a33cc7a5065"></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::Poller::Include </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>isLocked</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">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Add a channel to the poll set. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false. </p>

</div>
</div>
<a class="anchor" id="af8b54eb30fb256f870deb37166843f1e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool XrdSys::IOEvents::Poller::Init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>isLockd</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">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1ccc55aa41346893da8eb14b57ac7ca6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::LockChannel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html#ae27bfaa9356a26354239ff8a183b9367">XrdSys::IOEvents::Channel::chMutex</a>, and <a class="el" href="classXrdSysMutex.html#a6dcffcf5ae5370f5aca882d38935fd69">XrdSysMutex::Lock()</a>.</p>

</div>
</div>
<a class="anchor" id="a030f48b94b9632bdad3b21578caed155"></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::Poller::Modify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>isLocked</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">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Modify the event status of a channel. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false. </p>

</div>
</div>
<a class="anchor" id="a66206c2ac758b14e160175e858d0de1c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html">Poller</a>* XrdSys::IOEvents::Poller::newPoller </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pFD</em>[2], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#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">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac124a50b15ff7433fd0dd0b0977c1627"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::Poll2Enum </td>
          <td>(</td>
          <td class="paramtype">short&#160;</td>
          <td class="paramname"><em>events</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa4314cecf0a9b9355a4d678eb9a66575"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::SendCmd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html">PipeData</a> &amp;&#160;</td>
          <td class="paramname"><em>cmd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="af2ed179a0422e3a2555fa8e22add166d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::SetPollEnt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ptEnt</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">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ab79ba5ab8a162d22debda99894b45454"></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::Poller::Shutdown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Shutdown the poller. An implementation must be supplied. The shutdown method must release any allocated storage and close private file descriptors. The polling thread will have already been terminated and x-thread pipe closed. Warning: the derived destructor <em>must</em> call <a class="el" href="classXrdSys_1_1IOEvents_1_1Poller.html#aec4462a6ee6ac1adcd8b3b763590cb8a">Stop()</a> and do nothing else! </p>

</div>
</div>
<a class="anchor" id="aec4462a6ee6ac1adcd8b3b763590cb8a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::Stop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Stop a poller object. Active callbacks are completed. Pending callbacks are discarded. After which the poller event thread exits. Subsequently, each associated channel is disabled and removed from the poller object. If the channel is enabled for a StopEvent, the stop callback is invoked. However, any attempt to use the channel methods that require an active poller will return an error.</p>
<p>Since a stopped poller cannot be restarted; the only thing left is to delete it. This also applies to all the associated channels since they no longer have an active poller. </p>

</div>
</div>
<a class="anchor" id="a77abf54a953424002ddb1e244fee3bbd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool XrdSys::IOEvents::Poller::TmoAdd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a5a9435a6ecbfa33c3830748815888291"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::TmoDel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a8d11c40c83b6710b239fe9f186dd3781"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::TmoGet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aae7a4844cb30fb0ea23a86fd5f8fbc04"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::UnLockChannel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a> *&#160;</td>
          <td class="paramname"><em>cP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html#ae27bfaa9356a26354239ff8a183b9367">XrdSys::IOEvents::Channel::chMutex</a>, and <a class="el" href="classXrdSysMutex.html#ab5802ffb3112a55f06b5d0679ed6a772">XrdSysMutex::UnLock()</a>.</p>

</div>
</div>
<a class="anchor" id="acc1bea4d942f08152fad8e09cc1c643c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void XrdSys::IOEvents::Poller::WakeUp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="ac69850585196b98388d4e882833018dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class BootStrap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac47342240f21ce36f47485e4ab41a10d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="adf179d294e8eb581000fba2ed148f3d9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a> XrdSys::IOEvents::Poller::adMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a190257c89b73851cdcffec6669676681"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a>* XrdSys::IOEvents::Poller::attBase</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ae492d12390e4a3b86a9535ae54dddf73"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool XrdSys::IOEvents::Poller::chDead</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9805d7a56ad50654327ef4044ac8d357"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::cmdFD</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9dbe07d2999c04ffb8f88c7efd9a76bd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">time_t XrdSys::IOEvents::Poller::maxTime</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abb3dd62f8bc500d01c153a1608ea4e51"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::pipeBlen</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a05aba238e465308c5487a53c764bbe2e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* XrdSys::IOEvents::Poller::pipeBuff</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6c8834db84db37f77e438a1766b7037b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct pollfd XrdSys::IOEvents::Poller::pipePoll</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a400146b6d07469dc08543b768cc877ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">pthread_t XrdSys::IOEvents::Poller::pollTid</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ad77d8b8ad1beea2e6801a71b88b9fcc4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structXrdSys_1_1IOEvents_1_1Poller_1_1PipeData.html">PipeData</a> XrdSys::IOEvents::Poller::reqBuff</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a33bb3d7027266c8632e36b93b74d035a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int XrdSys::IOEvents::Poller::reqFD</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a298f2a23394400db1f8d4cdc9eb0d06c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classXrdSys_1_1IOEvents_1_1Channel.html">Channel</a>* XrdSys::IOEvents::Poller::tmoBase</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a85ddf036023930cc254247cc395bd73a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classXrdSysMutex.html">XrdSysMutex</a> XrdSys::IOEvents::Poller::toMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1c75d7fd45f14d925d3d5e4a8c2c04b6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool XrdSys::IOEvents::Poller::wakePend</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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