- rcf-09c.zip
- RCF-0.9c
- demo
- vs2003
- RCF
- include
- RCF
- SF
- license.txt
- src
- RCF
- SF
- test
- rcf-04.zip
- RCF-0.4
- demo
- vs2003
- RCF
- doc
- html
- latex
- include
- RCF
- SF
- license.txt
- src
- RCF
- SF
- test
- vs2003
- RCF
- RCF.sln
- RCF
- RCF.vcproj
- RCFTest
- client.pem
- RCFTest.vcproj
- server.pem
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>RCF: RCF::I_ServerTransportEx 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.4.5 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="classes.html"><span>Alphabetical List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data Fields</span></a></li>
</ul></div>
<div class="nav">
<b>RCF</b>::<a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html">I_ServerTransportEx</a></div>
<h1>RCF::I_ServerTransportEx Class Reference</h1><!-- doxytag: class="RCF::I_ServerTransportEx" --><code>#include <<a class="el" href="_server_transport_8hpp-source.html">ServerTransport.hpp</a>></code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Additional base class for server transport services with extended stream-oriented functionality.
<p>
Twoway, stream-oriented server transport services that are to be used with publish/subscribe need to implement <a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html">I_ServerTransportEx</a>. The functions in <a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html">I_ServerTransportEx</a> are all synchronized and can safely be called from any thread.
<p>
<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"><a class="anchor" name="3da3e81cc120e38dfc58431135edfc0e"></a><!-- doxytag: member="RCF::I_ServerTransportEx::~I_ServerTransportEx" ref="3da3e81cc120e38dfc58431135edfc0e" args="()" -->
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#3da3e81cc120e38dfc58431135edfc0e">~I_ServerTransportEx</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Virtual destructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual ClientTransportAutoPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#6252ec3f15119c7d2a50403c3e2002d9">createClientTransport</a> (const <a class="el" href="class_r_c_f_1_1_i___endpoint.html">I_Endpoint</a> &endpoint)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a client transport to the given endpoint. <a href="#6252ec3f15119c7d2a50403c3e2002d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual boost::shared_ptr<<br>
<a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#32e451b713b7180fe49f13b894512b2d">createServerSession</a> (ClientTransportAutoPtr clientTransportAutoPtr)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a server session dual to the given client transport. <a href="#32e451b713b7180fe49f13b894512b2d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual ClientTransportAutoPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#74e550a8726ac8cfe5a221e339b3192b">createClientTransport</a> (boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > sessionPtr)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a client transport dual to the given server session. <a href="#74e550a8726ac8cfe5a221e339b3192b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#f6211a9a9be2b68cba519733ce555705">reflect</a> (boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > sessionPtr1, boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > sessionPtr2)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Requests the server transport to start reflecting data between the two given sessions. <a href="#f6211a9a9be2b68cba519733ce555705"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_i___server_transport_ex.html#23282d5af62e7d043af50a104a9e31ee">isConnected</a> (boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > sessionPtr)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Attempts to determine whether a server session is still connected. <a href="#23282d5af62e7d043af50a104a9e31ee"></a><br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="74e550a8726ac8cfe5a221e339b3192b"></a><!-- doxytag: member="RCF::I_ServerTransportEx::createClientTransport" ref="74e550a8726ac8cfe5a221e339b3192b" args="(boost::shared_ptr< I_Session > sessionPtr)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual ClientTransportAutoPtr RCF::I_ServerTransportEx::createClientTransport </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > </td>
<td class="mdname1" valign="top" nowrap> <em>sessionPtr</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Creates a client transport dual to the given server session.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sessionPtr</em> </td><td>Server session from which to generate the client transport. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Auto pointer to client transport. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="6252ec3f15119c7d2a50403c3e2002d9"></a><!-- doxytag: member="RCF::I_ServerTransportEx::createClientTransport" ref="6252ec3f15119c7d2a50403c3e2002d9" args="(const I_Endpoint &endpoint)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual ClientTransportAutoPtr RCF::I_ServerTransportEx::createClientTransport </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">const <a class="el" href="class_r_c_f_1_1_i___endpoint.html">I_Endpoint</a> & </td>
<td class="mdname1" valign="top" nowrap> <em>endpoint</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Creates a client transport to the given endpoint.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>endpoint</em> </td><td>Endpoint describing a remote server. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Auto pointer to client transport accessing the remote server described by the endpoint. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="32e451b713b7180fe49f13b894512b2d"></a><!-- doxytag: member="RCF::I_ServerTransportEx::createServerSession" ref="32e451b713b7180fe49f13b894512b2d" args="(ClientTransportAutoPtr clientTransportAutoPtr)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual boost::shared_ptr<<a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a>> RCF::I_ServerTransportEx::createServerSession </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">ClientTransportAutoPtr </td>
<td class="mdname1" valign="top" nowrap> <em>clientTransportAutoPtr</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Creates a server session dual to the given client transport.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>clientTransportAutoPtr</em> </td><td>Auto pointer to client transport, from which the server session should be generated. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Server session. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="23282d5af62e7d043af50a104a9e31ee"></a><!-- doxytag: member="RCF::I_ServerTransportEx::isConnected" ref="23282d5af62e7d043af50a104a9e31ee" args="(boost::shared_ptr< I_Session > sessionPtr)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual bool RCF::I_ServerTransportEx::isConnected </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > </td>
<td class="mdname1" valign="top" nowrap> <em>sessionPtr</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Attempts to determine whether a server session is still connected.
<p>
Returns true, unless it can be determined that the physical transport instance is no longer valid. For a TCP server session, this amounts to checking if the underlying socket is ready to receive and has no errors queued, in other words that the TCP connection is still open. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sessionPtr</em> </td><td>Session to check. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Boolean value indicating the server transports best-effort knowledge of the state of the session. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="f6211a9a9be2b68cba519733ce555705"></a><!-- doxytag: member="RCF::I_ServerTransportEx::reflect" ref="f6211a9a9be2b68cba519733ce555705" args="(boost::shared_ptr< I_Session > sessionPtr1, boost::shared_ptr< I_Session > sessionPtr2)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual bool RCF::I_ServerTransportEx::reflect </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > </td>
<td class="mdname" nowrap> <em>sessionPtr1</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>boost::shared_ptr< <a class="el" href="class_r_c_f_1_1_i___session.html">I_Session</a> > </td>
<td class="mdname" nowrap> <em>sessionPtr2</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Requests the server transport to start reflecting data between the two given sessions.
<p>
All data subsequently read on the first session will be sent out on the second session, and vice versa. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sessionPtr1</em> </td><td>First server session </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sessionPtr2</em> </td><td>Second server session. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>true if server transport acquiesces, false otherwise. </dd></dl>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_server_transport_8hpp-source.html">ServerTransport.hpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Tue Sep 19 19:02:39 2006 for RCF by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address>
</body>
</html>
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Software developer, from Sweden and now living in Canberra, Australia, working on distributed C++ applications. When he is not programming, Jarl enjoys skiing and playing table tennis. He derives immense satisfaction from referring to himself in third person.