Click here to Skip to main content
15,892,768 members
Articles / Programming Languages / C++

RCF - Interprocess Communication for C++

Rate me:
Please Sign up or sign in to vote.
4.94/5 (147 votes)
25 Oct 2011CPOL20 min read 4.6M   8.4K   331  
A server/client IPC framework, using the C++ preprocessor as an IDL compiler.
<!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::FilterService 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&nbsp;Page</span></a></li>
    <li id="current"><a href="annotated.html"><span>Data&nbsp;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&nbsp;Structures</span></a></li>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
  </ul></div>
<div class="nav">
<b>RCF</b>::<a class="el" href="class_r_c_f_1_1_filter_service.html">FilterService</a></div>
<h1>RCF::FilterService Class Reference</h1><!-- doxytag: class="RCF::FilterService" --><!-- doxytag: inherits="RCF::I_Service" --><code>#include &lt;<a class="el" href="_filter_service_8hpp-source.html">FilterService.hpp</a>&gt;</code>
<p>
<p>Inheritance diagram for RCF::FilterService:
<p><center><img src="class_r_c_f_1_1_filter_service.png" usemap="#RCF::FilterService_map" border="0" alt=""></center>
<map name="RCF::FilterService_map">
<area href="class_r_c_f_1_1_i___service.html" alt="RCF::I_Service" shape="rect" coords="0,0,116,24">
</map>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Service enabling <a class="el" href="class_r_c_f_1_1_rcf_server.html">RcfServer</a> to supply its transports with filters, e.g. for compression and encryption. 
<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="ee8b796d0531d025587e872593a8e701"></a><!-- doxytag: member="RCF::FilterService::FilterService" ref="ee8b796d0531d025587e872593a8e701" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_filter_service.html#ee8b796d0531d025587e872593a8e701">FilterService</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_filter_service.html#89db926adda19d2ab698c5ca349cd243">addFilterFactory</a> (FilterFactoryPtr filterFactoryPtr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a filter factory to the service.  <a href="#89db926adda19d2ab698c5ca349cd243"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_filter_service.html#508160a397d496017da45233344a0fda">requestTransportFilters</a> (const std::vector&lt; int &gt; &amp;filterIds)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remotely accessible (via I_RequestTransportFilters), allows clients to request transport and payload filters, for their communication with the server.  <a href="#508160a397d496017da45233344a0fda"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">FilterFactoryPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_c_f_1_1_filter_service.html#97b9b8e815be11cbecb29c600916dd43">getFilterFactoryPtr</a> (int filterId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a filter factory for the given filter id.  <a href="#97b9b8e815be11cbecb29c600916dd43"></a><br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="89db926adda19d2ab698c5ca349cd243"></a><!-- doxytag: member="RCF::FilterService::addFilterFactory" ref="89db926adda19d2ab698c5ca349cd243" args="(FilterFactoryPtr filterFactoryPtr)" --><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">void RCF::FilterService::addFilterFactory           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">FilterFactoryPtr&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>filterFactoryPtr</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds a filter factory to the service. 
<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>filterFactoryPtr</em>&nbsp;</td><td><a class="el" href="class_r_c_f_1_1_filter.html">Filter</a> factory to add. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="97b9b8e815be11cbecb29c600916dd43"></a><!-- doxytag: member="RCF::FilterService::getFilterFactoryPtr" ref="97b9b8e815be11cbecb29c600916dd43" args="(int filterId)" --><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">FilterFactoryPtr RCF::FilterService::getFilterFactoryPtr           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>filterId</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a filter factory for the given filter id. 
<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>filterId</em>&nbsp;</td><td><a class="el" href="class_r_c_f_1_1_filter.html">Filter</a> id. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="class_r_c_f_1_1_filter.html">Filter</a> factory for given filter id (null if filter id is not recognized). </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="508160a397d496017da45233344a0fda"></a><!-- doxytag: member="RCF::FilterService::requestTransportFilters" ref="508160a397d496017da45233344a0fda" args="(const std::vector&lt; int &gt; &amp;filterIds)" --><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">bool RCF::FilterService::requestTransportFilters           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const std::vector&lt; int &gt; &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>filterIds</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remotely accessible (via I_RequestTransportFilters), allows clients to request transport and payload filters, for their communication with the server. 
<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>filterIds</em>&nbsp;</td><td>Vector of integers indicating the desired sequence of filters. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>true if successful, false otherwise. If true, then subsequent communication between server and client will be filtered as requested. </dd></dl>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_filter_service_8hpp-source.html">FilterService.hpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Tue Sep 19 19:02:38 2006 for RCF by&nbsp;
<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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Australia Australia
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.

Comments and Discussions