Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > dc51c7d3f8a5588a609f484ef81504ee > files > 62

libfastcgipp-devel-1.1-2mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>fastcgi++: Fastcgipp::Transceiver Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceFastcgipp.html">Fastcgipp</a>::<a class="el" href="classFastcgipp_1_1Transceiver.html">Transceiver</a>
  </div>
</div>
<div class="contents">
<h1>Fastcgipp::Transceiver Class Reference</h1><!-- doxytag: class="Fastcgipp::Transceiver" -->Handles low level communication with "the other side".  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>&gt;</code>
<p>

<p>
<a href="classFastcgipp_1_1Transceiver-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">General transceiver handler.  <a href="#f06e586f5a49dd694f2ae98398870721"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFastcgipp_1_1Block.html">Block</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#5019405a5a05d60fdaa73d349cca58c0">requestWrite</a> (size_t size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Direct interface to <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#cf2cce1c96a7138adda98414f4e0d921" title="Request a write block in the buffer.">Buffer::requestWrite()</a>.  <a href="#5019405a5a05d60fdaa73d349cca58c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#1a720bf113ad9781e59b0fc021988d29">secureWrite</a> (size_t size, <a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a> id, bool kill)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Direct interface to <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#a1a80f3feb1355bd5bc57545d16c309e" title="Secure a write in the buffer.">Buffer::secureWrite()</a>.  <a href="#1a720bf113ad9781e59b0fc021988d29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#b8be64ba57bcef64d313960544400d6c">Transceiver</a> (int fd_, boost::function&lt; void(<a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a>, <a class="el" href="structFastcgipp_1_1Message.html">Message</a>)&gt; sendMessage_)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#b8be64ba57bcef64d313960544400d6c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#5c1bafc977eaa9e4c3e94a5b9eab59eb">sleep</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Blocks until there is data to receive or a call to <a class="el" href="classFastcgipp_1_1Transceiver.html#4dfd5de627b92f6bb5a834a68b20bb85" title="Forces a wakeup from a call to sleep().">wake()</a> is made.  <a href="#5c1bafc977eaa9e4c3e94a5b9eab59eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#4dfd5de627b92f6bb5a834a68b20bb85">wake</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Forces a wakeup from a call to <a class="el" href="classFastcgipp_1_1Transceiver.html#5c1bafc977eaa9e4c3e94a5b9eab59eb" title="Blocks until there is data to receive or a call to wake() is made.">sleep()</a>.  <a href="#4dfd5de627b92f6bb5a834a68b20bb85"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transmit all buffered data possible.  <a href="#54ffa1d25fed65ff61024ff8ce26a99b"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html">Buffer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#8656d4bd7359d7e12a9cc5921fc3a1d4">buffer</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Buffer for transmitting data  <a href="#8656d4bd7359d7e12a9cc5921fc3a1d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">boost::function&lt; void(<a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a>, <br>
<a class="el" href="structFastcgipp_1_1Message.html">Message</a>)&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#cc1090414ba4805db330e09a3f26178e">sendMessage</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function to call to pass messages to requests.  <a href="#cc1090414ba4805db330e09a3f26178e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; pollfd &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">pollFds</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">poll() file descriptors container  <a href="#4b163da2ea08d648a34f9903b86d82fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#19c7caeb43236b6c68f38d04e4bfca33">socket</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket to listen for connections on.  <a href="#19c7caeb43236b6c68f38d04e4bfca33"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#7b7f39053271cd4afd41b4672d7eeec4">wakeUpFdIn</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input file descriptor to the wakeup socket pair.  <a href="#7b7f39053271cd4afd41b4672d7eeec4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#ba0fbaf4469c1c7e36d75a4faade3b7e">wakeUpFdOut</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output file descriptor to the wakeup socket pair.  <a href="#ba0fbaf4469c1c7e36d75a4faade3b7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; int, <a class="el" href="structFastcgipp_1_1Transceiver_1_1fdBuffer.html">fdBuffer</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver.html#28c9ac40d0fe11414bc86ad2b8ce4953">fdBuffers</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Container associating file descriptors with their receive buffers.  <a href="#28c9ac40d0fe11414bc86ad2b8ce4953"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html">Buffer</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Buffer type for transmission of FastCGI records  <a href="classFastcgipp_1_1Transceiver_1_1Buffer.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFastcgipp_1_1Transceiver_1_1fdBuffer.html">fdBuffer</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Buffer type for receiving FastCGI records  <a href="structFastcgipp_1_1Transceiver_1_1fdBuffer.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Handles low level communication with "the other side". 
<p>
This class handles the sending/receiving/buffering of data through the OS level sockets and also the creation/destruction of the sockets themselves. 
<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00079">79</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="b8be64ba57bcef64d313960544400d6c"></a><!-- doxytag: member="Fastcgipp::Transceiver::Transceiver" ref="b8be64ba57bcef64d313960544400d6c" args="(int fd_, boost::function&lt; void(Protocol::FullId, Message)&gt; sendMessage_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Fastcgipp::Transceiver::Transceiver           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::function&lt; void(<a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a>, <a class="el" href="structFastcgipp_1_1Message.html">Message</a>)&gt;&nbsp;</td>
          <td class="paramname"> <em>sendMessage_</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor. 
<p>
Construct a transceiver object based on an initial file descriptor to listen on and a function to pass messages on to.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fd_</em>&nbsp;</td><td>File descriptor to listen for connections on </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>sendMessage_</em>&nbsp;</td><td>Function to call to pass messages to requests </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="transceiver_8cpp-source.html#l00192">192</a> of file <a class="el" href="transceiver_8cpp-source.html">transceiver.cpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">pollFds</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#19c7caeb43236b6c68f38d04e4bfca33">socket</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#7b7f39053271cd4afd41b4672d7eeec4">wakeUpFdIn</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#ba0fbaf4469c1c7e36d75a4faade3b7e">wakeUpFdOut</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="f06e586f5a49dd694f2ae98398870721"></a><!-- doxytag: member="Fastcgipp::Transceiver::handler" ref="f06e586f5a49dd694f2ae98398870721" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Fastcgipp::Transceiver::handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
General transceiver handler. 
<p>
This function is called by <a class="el" href="classFastcgipp_1_1Manager.html#578c8468166d892d1858ad6f4d953d8d" title="General handling function to be called after construction.">Manager::handler()</a> to both transmit data passed to it from requests and relay received data back to them as a <a class="el" href="structFastcgipp_1_1Message.html" title="Data structure used to pass messages within the fastcgi++ task management system...">Message</a>. The function will return true if there is nothing at all for it to do.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Boolean value indicating whether there is data to be transmitted or received </dd></dl>

<p>Definition at line <a class="el" href="transceiver_8cpp-source.html#l00065">65</a> of file <a class="el" href="transceiver_8cpp-source.html">transceiver.cpp</a>.</p>

<p>References <a class="el" href="structFastcgipp_1_1Message.html#4467d1b63f295c224943dc1a1ef112ff">Fastcgipp::Message::data</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#28c9ac40d0fe11414bc86ad2b8ce4953">fdBuffers</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">pollFds</a>, <a class="el" href="namespaceFastcgipp.html#b81025146f21643e6e765612d5d57462">Fastcgipp::reventsZero()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#cc1090414ba4805db330e09a3f26178e">sendMessage</a>, <a class="el" href="structFastcgipp_1_1Message.html#93817f3790bbeaf27d4e669ed3ce7179">Fastcgipp::Message::size</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#19c7caeb43236b6c68f38d04e4bfca33">socket</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit()</a>, <a class="el" href="structFastcgipp_1_1Message.html#ba5936b4703cc3c398bbf0bb9eb6bd4f">Fastcgipp::Message::type</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#7b7f39053271cd4afd41b4672d7eeec4">wakeUpFdIn</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Manager.html#578c8468166d892d1858ad6f4d953d8d">Fastcgipp::Manager&lt; T &gt;::handler()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5019405a5a05d60fdaa73d349cca58c0"></a><!-- doxytag: member="Fastcgipp::Transceiver::requestWrite" ref="5019405a5a05d60fdaa73d349cca58c0" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structFastcgipp_1_1Block.html">Block</a> Fastcgipp::Transceiver::requestWrite           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Direct interface to <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#cf2cce1c96a7138adda98414f4e0d921" title="Request a write block in the buffer.">Buffer::requestWrite()</a>. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00093">93</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#8656d4bd7359d7e12a9cc5921fc3a1d4">buffer</a>, and <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#cf2cce1c96a7138adda98414f4e0d921">Fastcgipp::Transceiver::Buffer::requestWrite()</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Request.html#c74d29ec18ccdf7dbb538660c462c712">Fastcgipp::Request&lt; charT &gt;::complete()</a>, <a class="el" href="classFastcgipp_1_1Fcgistream_1_1Fcgibuf.html#7323979677487f217c4ca0f6f2f02706">Fastcgipp::Fcgistream&lt; charT, traits &gt;::Fcgibuf::emptyBuffer()</a>, <a class="el" href="classFastcgipp_1_1Request.html#fb01e31a30e69ab7a2720172c3aab619">Fastcgipp::Request&lt; charT &gt;::handler()</a>, and <a class="el" href="classFastcgipp_1_1Manager.html#cefd3c86045b2663e9529dd4109268e1">Fastcgipp::Manager&lt; T &gt;::localHandler()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1a720bf113ad9781e59b0fc021988d29"></a><!-- doxytag: member="Fastcgipp::Transceiver::secureWrite" ref="1a720bf113ad9781e59b0fc021988d29" args="(size_t size, Protocol::FullId id, bool kill)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Fastcgipp::Transceiver::secureWrite           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a>&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>kill</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Direct interface to <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#a1a80f3feb1355bd5bc57545d16c309e" title="Secure a write in the buffer.">Buffer::secureWrite()</a>. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00095">95</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#8656d4bd7359d7e12a9cc5921fc3a1d4">buffer</a>, <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#a1a80f3feb1355bd5bc57545d16c309e">Fastcgipp::Transceiver::Buffer::secureWrite()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit()</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Request.html#c74d29ec18ccdf7dbb538660c462c712">Fastcgipp::Request&lt; charT &gt;::complete()</a>, <a class="el" href="classFastcgipp_1_1Fcgistream_1_1Fcgibuf.html#7323979677487f217c4ca0f6f2f02706">Fastcgipp::Fcgistream&lt; charT, traits &gt;::Fcgibuf::emptyBuffer()</a>, <a class="el" href="classFastcgipp_1_1Request.html#fb01e31a30e69ab7a2720172c3aab619">Fastcgipp::Request&lt; charT &gt;::handler()</a>, and <a class="el" href="classFastcgipp_1_1Manager.html#cefd3c86045b2663e9529dd4109268e1">Fastcgipp::Manager&lt; T &gt;::localHandler()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c1bafc977eaa9e4c3e94a5b9eab59eb"></a><!-- doxytag: member="Fastcgipp::Transceiver::sleep" ref="5c1bafc977eaa9e4c3e94a5b9eab59eb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Fastcgipp::Transceiver::sleep           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Blocks until there is data to receive or a call to <a class="el" href="classFastcgipp_1_1Transceiver.html#4dfd5de627b92f6bb5a834a68b20bb85" title="Forces a wakeup from a call to sleep().">wake()</a> is made. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00106">106</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">pollFds</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Manager.html#578c8468166d892d1858ad6f4d953d8d">Fastcgipp::Manager&lt; T &gt;::handler()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4dfd5de627b92f6bb5a834a68b20bb85"></a><!-- doxytag: member="Fastcgipp::Transceiver::wake" ref="4dfd5de627b92f6bb5a834a68b20bb85" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Fastcgipp::Transceiver::wake           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Forces a wakeup from a call to <a class="el" href="classFastcgipp_1_1Transceiver.html#5c1bafc977eaa9e4c3e94a5b9eab59eb" title="Blocks until there is data to receive or a call to wake() is made.">sleep()</a>. 
<p>

<p>Definition at line <a class="el" href="transceiver_8cpp-source.html#l00186">186</a> of file <a class="el" href="transceiver_8cpp-source.html">transceiver.cpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#ba0fbaf4469c1c7e36d75a4faade3b7e">wakeUpFdOut</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Manager.html#33fabd7f6c5eab389ef766fe67f4f870">Fastcgipp::Manager&lt; T &gt;::push()</a>.</p>

</div>
</div><p>
<a class="anchor" name="54ffa1d25fed65ff61024ff8ce26a99b"></a><!-- doxytag: member="Fastcgipp::Transceiver::transmit" ref="54ffa1d25fed65ff61024ff8ce26a99b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Fastcgipp::Transceiver::transmit           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transmit all buffered data possible. 
<p>

<p>Definition at line <a class="el" href="transceiver_8cpp-source.html#l00024">24</a> of file <a class="el" href="transceiver_8cpp-source.html">transceiver.cpp</a>.</p>

<p>References <a class="el" href="classFastcgipp_1_1Transceiver.html#8656d4bd7359d7e12a9cc5921fc3a1d4">buffer</a>, <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#f3f403dd53cad518f8cc12d03ac67bd2">Fastcgipp::Transceiver::Buffer::empty()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#28c9ac40d0fe11414bc86ad2b8ce4953">fdBuffers</a>, <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#ca9630cbe4c0c08d009fbeed5bd85e92">Fastcgipp::Transceiver::Buffer::freeRead()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">pollFds</a>, and <a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html#c017d6e4d7b8552a8c637da676ce7402">Fastcgipp::Transceiver::Buffer::requestRead()</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#1a720bf113ad9781e59b0fc021988d29">secureWrite()</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="8656d4bd7359d7e12a9cc5921fc3a1d4"></a><!-- doxytag: member="Fastcgipp::Transceiver::buffer" ref="8656d4bd7359d7e12a9cc5921fc3a1d4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classFastcgipp_1_1Transceiver_1_1Buffer.html">Buffer</a> <a class="el" href="classFastcgipp_1_1Transceiver.html#8656d4bd7359d7e12a9cc5921fc3a1d4">Fastcgipp::Transceiver::buffer</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Buffer for transmitting data 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00256">256</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#5019405a5a05d60fdaa73d349cca58c0">requestWrite()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#1a720bf113ad9781e59b0fc021988d29">secureWrite()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit()</a>.</p>

</div>
</div><p>
<a class="anchor" name="cc1090414ba4805db330e09a3f26178e"></a><!-- doxytag: member="Fastcgipp::Transceiver::sendMessage" ref="cc1090414ba4805db330e09a3f26178e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::function&lt;void(<a class="el" href="structFastcgipp_1_1Protocol_1_1FullId.html">Protocol::FullId</a>, <a class="el" href="structFastcgipp_1_1Message.html">Message</a>)&gt; <a class="el" href="classFastcgipp_1_1Transceiver.html#cc1090414ba4805db330e09a3f26178e">Fastcgipp::Transceiver::sendMessage</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function to call to pass messages to requests. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00258">258</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4b163da2ea08d648a34f9903b86d82fe"></a><!-- doxytag: member="Fastcgipp::Transceiver::pollFds" ref="4b163da2ea08d648a34f9903b86d82fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;pollfd&gt; <a class="el" href="classFastcgipp_1_1Transceiver.html#4b163da2ea08d648a34f9903b86d82fe">Fastcgipp::Transceiver::pollFds</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
poll() file descriptors container 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00261">261</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#5c1bafc977eaa9e4c3e94a5b9eab59eb">sleep()</a>, <a class="el" href="classFastcgipp_1_1Transceiver.html#b8be64ba57bcef64d313960544400d6c">Transceiver()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit()</a>.</p>

</div>
</div><p>
<a class="anchor" name="19c7caeb43236b6c68f38d04e4bfca33"></a><!-- doxytag: member="Fastcgipp::Transceiver::socket" ref="19c7caeb43236b6c68f38d04e4bfca33" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classFastcgipp_1_1Transceiver.html#19c7caeb43236b6c68f38d04e4bfca33">Fastcgipp::Transceiver::socket</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Socket to listen for connections on. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00263">263</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#b8be64ba57bcef64d313960544400d6c">Transceiver()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7b7f39053271cd4afd41b4672d7eeec4"></a><!-- doxytag: member="Fastcgipp::Transceiver::wakeUpFdIn" ref="7b7f39053271cd4afd41b4672d7eeec4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classFastcgipp_1_1Transceiver.html#7b7f39053271cd4afd41b4672d7eeec4">Fastcgipp::Transceiver::wakeUpFdIn</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Input file descriptor to the wakeup socket pair. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00265">265</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#b8be64ba57bcef64d313960544400d6c">Transceiver()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ba0fbaf4469c1c7e36d75a4faade3b7e"></a><!-- doxytag: member="Fastcgipp::Transceiver::wakeUpFdOut" ref="ba0fbaf4469c1c7e36d75a4faade3b7e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classFastcgipp_1_1Transceiver.html#ba0fbaf4469c1c7e36d75a4faade3b7e">Fastcgipp::Transceiver::wakeUpFdOut</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Output file descriptor to the wakeup socket pair. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00267">267</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#b8be64ba57bcef64d313960544400d6c">Transceiver()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#4dfd5de627b92f6bb5a834a68b20bb85">wake()</a>.</p>

</div>
</div><p>
<a class="anchor" name="28c9ac40d0fe11414bc86ad2b8ce4953"></a><!-- doxytag: member="Fastcgipp::Transceiver::fdBuffers" ref="28c9ac40d0fe11414bc86ad2b8ce4953" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;int, <a class="el" href="structFastcgipp_1_1Transceiver_1_1fdBuffer.html">fdBuffer</a>&gt; <a class="el" href="classFastcgipp_1_1Transceiver.html#28c9ac40d0fe11414bc86ad2b8ce4953">Fastcgipp::Transceiver::fdBuffers</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Container associating file descriptors with their receive buffers. 
<p>

<p>Definition at line <a class="el" href="transceiver_8hpp-source.html#l00270">270</a> of file <a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a>.</p>

<p>Referenced by <a class="el" href="classFastcgipp_1_1Transceiver.html#f06e586f5a49dd694f2ae98398870721">handler()</a>, and <a class="el" href="classFastcgipp_1_1Transceiver.html#54ffa1d25fed65ff61024ff8ce26a99b">transmit()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="transceiver_8hpp-source.html">transceiver.hpp</a><li><a class="el" href="transceiver_8cpp-source.html">transceiver.cpp</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 16 15:17:47 2008 for fastcgi++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>