Sophie

Sophie

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

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: XrdCl::TransportHandler 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="namespaceXrdCl.html">XrdCl</a></li><li class="navelem"><a class="el" href="classXrdCl_1_1TransportHandler.html">TransportHandler</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="classXrdCl_1_1TransportHandler-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">XrdCl::TransportHandler Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Perform the handshake and the authentication for each physical stream.  
 <a href="classXrdCl_1_1TransportHandler.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="XrdClPostMasterInterfaces_8hh_source.html">XrdClPostMasterInterfaces.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:a0973b17ea4401b3d2fc19d1922fa589f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589f">StreamAction</a> { <br/>
&#160;&#160;<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589fa188f0e9d5c2a004ce7d3f568dde7407c">NoAction</a> = 0x0000, 
<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589fa389dcef80849abffef60ed3ce73bedd6">DigestMsg</a> = 0x0001, 
<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589fa7d1d5694e4915540cfd5e187bb3af134">AbortStream</a> = 0x0002, 
<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589fa9cc697cb82fcc3ebb16124aa662a4c46">CloseStream</a> = 0x0004, 
<br/>
&#160;&#160;<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589faaf6b8cc9b5eae37c2890f166b8bc6720">ResumeStream</a> = 0x0008, 
<a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589fa92178b0417ac16a05445c8acca5d5051">HoldStream</a> = 0x0010
<br/>
 }</td></tr>
<tr class="memdesc:a0973b17ea4401b3d2fc19d1922fa589f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream actions that may be triggered by incoming control messages.  <a href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589f">More...</a><br/></td></tr>
<tr class="separator:a0973b17ea4401b3d2fc19d1922fa589f"><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:aa3e5ae6ab306a72cbf3e3d943a4931f6"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#aa3e5ae6ab306a72cbf3e3d943a4931f6">~TransportHandler</a> ()</td></tr>
<tr class="separator:aa3e5ae6ab306a72cbf3e3d943a4931f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749d320061b1b4b06c19f52da907c011"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a749d320061b1b4b06c19f52da907c011">GetHeader</a> (<a class="el" href="classXrdCl_1_1Message.html">Message</a> *message, int socket)=0</td></tr>
<tr class="separator:a749d320061b1b4b06c19f52da907c011"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39c69c1ab8f615d0653f97dac8e6f828"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a39c69c1ab8f615d0653f97dac8e6f828">GetBody</a> (<a class="el" href="classXrdCl_1_1Message.html">Message</a> *message, int socket)=0</td></tr>
<tr class="separator:a39c69c1ab8f615d0653f97dac8e6f828"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fc2df6681dbee3256c2fa7c4e3e7513"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a5fc2df6681dbee3256c2fa7c4e3e7513">InitializeChannel</a> (<a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a5fc2df6681dbee3256c2fa7c4e3e7513"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize channel.  <a href="#a5fc2df6681dbee3256c2fa7c4e3e7513">More...</a><br/></td></tr>
<tr class="separator:a5fc2df6681dbee3256c2fa7c4e3e7513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d04618787883bbeff998538f40593de"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a7d04618787883bbeff998538f40593de">FinalizeChannel</a> (<a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a7d04618787883bbeff998538f40593de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize channel.  <a href="#a7d04618787883bbeff998538f40593de">More...</a><br/></td></tr>
<tr class="separator:a7d04618787883bbeff998538f40593de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e0399eedbf886309df193db06f046b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#ad3e0399eedbf886309df193db06f046b">HandShake</a> (<a class="el" href="structXrdCl_1_1HandShakeData.html">HandShakeData</a> *handShakeData, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:ad3e0399eedbf886309df193db06f046b"><td class="mdescLeft">&#160;</td><td class="mdescRight">HandHake.  <a href="#ad3e0399eedbf886309df193db06f046b">More...</a><br/></td></tr>
<tr class="separator:ad3e0399eedbf886309df193db06f046b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d4a2d5bbfc99082201e06399b85e845"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a3d4a2d5bbfc99082201e06399b85e845">IsStreamTTLElapsed</a> (time_t inactiveTime, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a3d4a2d5bbfc99082201e06399b85e845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the stream should be disconnected.  <a href="#a3d4a2d5bbfc99082201e06399b85e845">More...</a><br/></td></tr>
<tr class="separator:a3d4a2d5bbfc99082201e06399b85e845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d1d6e6f092af3b30d260cff46fe169"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1PathID.html">PathID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a65d1d6e6f092af3b30d260cff46fe169">Multiplex</a> (<a class="el" href="classXrdCl_1_1Message.html">Message</a> *msg, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData, <a class="el" href="structXrdCl_1_1PathID.html">PathID</a> *hint=0)=0</td></tr>
<tr class="separator:a65d1d6e6f092af3b30d260cff46fe169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6800ac6069498bdedb23ea5ac0852efd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1PathID.html">PathID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a6800ac6069498bdedb23ea5ac0852efd">MultiplexSubStream</a> (<a class="el" href="classXrdCl_1_1Message.html">Message</a> *msg, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData, <a class="el" href="structXrdCl_1_1PathID.html">PathID</a> *hint=0)=0</td></tr>
<tr class="separator:a6800ac6069498bdedb23ea5ac0852efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f94874e7d4eea46cb3938b7871460d7"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a9f94874e7d4eea46cb3938b7871460d7">StreamNumber</a> (<a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a9f94874e7d4eea46cb3938b7871460d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a number of streams that should be created.  <a href="#a9f94874e7d4eea46cb3938b7871460d7">More...</a><br/></td></tr>
<tr class="separator:a9f94874e7d4eea46cb3938b7871460d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a3f8083a954af4a5537ad89cc392cb9"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a3a3f8083a954af4a5537ad89cc392cb9">SubStreamNumber</a> (<a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a3a3f8083a954af4a5537ad89cc392cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a number of substreams per stream that should be created.  <a href="#a3a3f8083a954af4a5537ad89cc392cb9">More...</a><br/></td></tr>
<tr class="separator:a3a3f8083a954af4a5537ad89cc392cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa938985916c4718da9e1dff4e9ce9b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#aafa938985916c4718da9e1dff4e9ce9b">Disconnect</a> (<a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData, uint16_t streamId, uint16_t subStreamId)=0</td></tr>
<tr class="memdesc:aafa938985916c4718da9e1dff4e9ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream has been disconnected, do the cleanups.  <a href="#aafa938985916c4718da9e1dff4e9ce9b">More...</a><br/></td></tr>
<tr class="separator:aafa938985916c4718da9e1dff4e9ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66876b1053e20762c6d4e0dc4678555d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a66876b1053e20762c6d4e0dc4678555d">Query</a> (uint16_t query, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;result, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a66876b1053e20762c6d4e0dc4678555d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query the channel.  <a href="#a66876b1053e20762c6d4e0dc4678555d">More...</a><br/></td></tr>
<tr class="separator:a66876b1053e20762c6d4e0dc4678555d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86573671972b52db74eb2f77f4866a36"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCl_1_1TransportHandler.html#a86573671972b52db74eb2f77f4866a36">StreamAction</a> (<a class="el" href="classXrdCl_1_1Message.html">Message</a> *msg, <a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;channelData)=0</td></tr>
<tr class="memdesc:a86573671972b52db74eb2f77f4866a36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the message invokes a stream action.  <a href="#a86573671972b52db74eb2f77f4866a36">More...</a><br/></td></tr>
<tr class="separator:a86573671972b52db74eb2f77f4866a36"><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>Perform the handshake and the authentication for each physical stream. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589f">XrdCl::TransportHandler::StreamAction</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stream actions that may be triggered by incoming control messages. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589fa188f0e9d5c2a004ce7d3f568dde7407c"></a>NoAction</em>&nbsp;</td><td class="fielddoc">
<p>No action. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589fa389dcef80849abffef60ed3ce73bedd6"></a>DigestMsg</em>&nbsp;</td><td class="fielddoc">
<p>Digest the incoming message so that it won't be passed to the user handlers </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589fa7d1d5694e4915540cfd5e187bb3af134"></a>AbortStream</em>&nbsp;</td><td class="fielddoc">
<p>Disconnect, abort all the on-going operations and mark the stream as permanently broken [not yet implemented] </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589fa9cc697cb82fcc3ebb16124aa662a4c46"></a>CloseStream</em>&nbsp;</td><td class="fielddoc">
<p>Disconnect and attempt reconnection later [not yet implemented] </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589faaf6b8cc9b5eae37c2890f166b8bc6720"></a>ResumeStream</em>&nbsp;</td><td class="fielddoc">
<p>Resume sending requests [not yet implemented] </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0973b17ea4401b3d2fc19d1922fa589fa92178b0417ac16a05445c8acca5d5051"></a>HoldStream</em>&nbsp;</td><td class="fielddoc">
<p>Stop sending requests [not yet implemented]. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa3e5ae6ab306a72cbf3e3d943a4931f6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual XrdCl::TransportHandler::~TransportHandler </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">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aafa938985916c4718da9e1dff4e9ce9b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void XrdCl::TransportHandler::Disconnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>streamId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>subStreamId</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>The stream has been disconnected, do the cleanups. </p>

</div>
</div>
<a class="anchor" id="a7d04618787883bbeff998538f40593de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void XrdCl::TransportHandler::FinalizeChannel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em></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>Finalize channel. </p>

</div>
</div>
<a class="anchor" id="a39c69c1ab8f615d0653f97dac8e6f828"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::TransportHandler::GetBody </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>socket</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>Read the message body from the socket, the socket is non-blocking, the method may be called multiple times - see GetHeader for details</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message buffer containing the header </td></tr>
    <tr><td class="paramname">socket</td><td>the socket </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>stOK &amp; suDone if the whole message has been processed stOK &amp; suRetry if more data is needed stError on failure </dd></dl>

</div>
</div>
<a class="anchor" id="a749d320061b1b4b06c19f52da907c011"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::TransportHandler::GetHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>socket</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>Read a message header from the socket, the socket is non-blocking, so if there is not enough data the function should return errRetry in which case it will be called again when more data arrives, with the data previously read stored in the message buffer</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message buffer </td></tr>
    <tr><td class="paramname">socket</td><td>the socket </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>stOK &amp; suDone if the whole message has been processed stOK &amp; suRetry if more data is needed stError on failure </dd></dl>

</div>
</div>
<a class="anchor" id="ad3e0399eedbf886309df193db06f046b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::TransportHandler::HandShake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXrdCl_1_1HandShakeData.html">HandShakeData</a> *&#160;</td>
          <td class="paramname"><em>handShakeData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</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>HandHake. </p>

</div>
</div>
<a class="anchor" id="a5fc2df6681dbee3256c2fa7c4e3e7513"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void XrdCl::TransportHandler::InitializeChannel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em></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>Initialize channel. </p>

</div>
</div>
<a class="anchor" id="a3d4a2d5bbfc99082201e06399b85e845"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool XrdCl::TransportHandler::IsStreamTTLElapsed </td>
          <td>(</td>
          <td class="paramtype">time_t&#160;</td>
          <td class="paramname"><em>inactiveTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</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>Check if the stream should be disconnected. </p>

</div>
</div>
<a class="anchor" id="a65d1d6e6f092af3b30d260cff46fe169"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1PathID.html">PathID</a> XrdCl::TransportHandler::Multiplex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXrdCl_1_1PathID.html">PathID</a> *&#160;</td>
          <td class="paramname"><em>hint</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">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the ID for the up stream this message should be sent by and the down stream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream. </p>

</div>
</div>
<a class="anchor" id="a6800ac6069498bdedb23ea5ac0852efd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1PathID.html">PathID</a> XrdCl::TransportHandler::MultiplexSubStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXrdCl_1_1PathID.html">PathID</a> *&#160;</td>
          <td class="paramname"><em>hint</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">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the ID for the up substream this message should be sent by and the down substream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream. </p>

</div>
</div>
<a class="anchor" id="a66876b1053e20762c6d4e0dc4678555d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structXrdCl_1_1Status.html">Status</a> XrdCl::TransportHandler::Query </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</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>Query the channel. </p>

</div>
</div>
<a class="anchor" id="a86573671972b52db74eb2f77f4866a36"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t <a class="el" href="classXrdCl_1_1TransportHandler.html#a0973b17ea4401b3d2fc19d1922fa589f">XrdCl::TransportHandler::StreamAction</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1Message.html">Message</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</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>Check if the message invokes a stream action. </p>

</div>
</div>
<a class="anchor" id="a9f94874e7d4eea46cb3938b7871460d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint16_t XrdCl::TransportHandler::StreamNumber </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em></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>Return a number of streams that should be created. </p>

</div>
</div>
<a class="anchor" id="a3a3f8083a954af4a5537ad89cc392cb9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint16_t XrdCl::TransportHandler::SubStreamNumber </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdCl_1_1AnyObject.html">AnyObject</a> &amp;&#160;</td>
          <td class="paramname"><em>channelData</em></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>Return a number of substreams per stream that should be created. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="XrdClPostMasterInterfaces_8hh_source.html">XrdClPostMasterInterfaces.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>