blob: cede0f4979003e9e0ab9861884ad62fb80866ff6 [file] [log] [blame]
<!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"/>
<title>activemq-cpp-3.4.0: decaf::internal::net::Network Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">activemq-cpp-3.4.0</div>
</td>
</tr>
</tbody>
</table>
</div>
<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>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classdecaf_1_1internal_1_1net_1_1_network.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<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> </div>
<div class="headertitle">
<h1>decaf::internal::net::Network Class Reference</h1> </div>
</div>
<div class="contents">
<!-- doxytag: class="decaf::internal::net::Network" -->
<p>Internal class used to manage Networking related resources and hide platform dependent calls from the higher level API.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_network_8h_source.html">src/main/decaf/internal/net/Network.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a6f214bea452cb7a13e3eeaddc23cbcae">~Network</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html">decaf::util::concurrent::Mutex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a93f99ecadb53605b83d22990a243603f">getRuntimeLock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a pointer to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime's Lock object, this can be used by <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer APIs to synchronize around certain actions such as adding a resource to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer, etc. <a href="#a93f99ecadb53605b83d22990a243603f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#ac1b874707814c17be8314c0d20bc84aa">addNetworkResource</a> (<a class="el" href="classdecaf_1_1internal_1_1util_1_1_resource.html">decaf::internal::util::Resource</a> *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a Resource to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime, this resource will be held by the runtime until the Library shutdown method is called at which time all the Resources held by the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime are destroyed. <a href="#ac1b874707814c17be8314c0d20bc84aa"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a9f9ee48e29c8d0e16ca49b30d6c6b6f1">addAsResource</a> (T *value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a923b2a81e1647a2c766e23364b13930b">addShutdownTask</a> (<a class="el" href="classdecaf_1_1lang_1_1_runnable.html">decaf::lang::Runnable</a> *task)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a Runnable to be called when the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime is shutdown to provide a chance to cleanup any data or references that could cause problems should the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime be re-initialized. <a href="#a923b2a81e1647a2c766e23364b13930b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html">Network</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a992a0903a76ed33c10158f56f954d098">getNetworkRuntime</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the one and only instance of the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> class, if this is called before the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer has been initialized or after it has been shutdown then an IllegalStateException is thrown. <a href="#a992a0903a76ed33c10158f56f954d098"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a2a9d461b2d6daf70717077c23212c18c">initializeNetworking</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the Networking layer. <a href="#a2a9d461b2d6daf70717077c23212c18c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#a41d070db80e5fe4343c49149325f41d4">shutdownNetworking</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Shutdown the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer and free any associated resources, classes in the Decaf library that use the networking layer will now fail if used after calling the shutdown method. <a href="#a41d070db80e5fe4343c49149325f41d4"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html#ae43f2fd282650fc339e1192870e21c62">Network</a> ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Internal class used to manage Networking related resources and hide platform dependent calls from the higher level API. </p>
<dl class="since"><dt><b>Since:</b></dt><dd>1.0 </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae43f2fd282650fc339e1192870e21c62"></a><!-- doxytag: member="decaf::internal::net::Network::Network" ref="ae43f2fd282650fc339e1192870e21c62" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">decaf::internal::net::Network::Network </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a6f214bea452cb7a13e3eeaddc23cbcae"></a><!-- doxytag: member="decaf::internal::net::Network::~Network" ref="a6f214bea452cb7a13e3eeaddc23cbcae" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual decaf::internal::net::Network::~Network </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9f9ee48e29c8d0e16ca49b30d6c6b6f1"></a><!-- doxytag: member="decaf::internal::net::Network::addAsResource" ref="a9f9ee48e29c8d0e16ca49b30d6c6b6f1" args="(T *value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">void decaf::internal::net::Network::addAsResource </td>
<td>(</td>
<td class="paramtype">T *&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ac1b874707814c17be8314c0d20bc84aa"></a><!-- doxytag: member="decaf::internal::net::Network::addNetworkResource" ref="ac1b874707814c17be8314c0d20bc84aa" args="(decaf::internal::util::Resource *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void decaf::internal::net::Network::addNetworkResource </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdecaf_1_1internal_1_1util_1_1_resource.html">decaf::internal::util::Resource</a> *&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Adds a Resource to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime, this resource will be held by the runtime until the Library shutdown method is called at which time all the Resources held by the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime are destroyed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>The Resource to add to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime.</td></tr>
</table>
</dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">NullPointerException</td><td>if the Resource value passed is null. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a923b2a81e1647a2c766e23364b13930b"></a><!-- doxytag: member="decaf::internal::net::Network::addShutdownTask" ref="a923b2a81e1647a2c766e23364b13930b" args="(decaf::lang::Runnable *task)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void decaf::internal::net::Network::addShutdownTask </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdecaf_1_1lang_1_1_runnable.html">decaf::lang::Runnable</a> *&#160;</td>
<td class="paramname"><em>task</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Register a Runnable to be called when the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime is shutdown to provide a chance to cleanup any data or references that could cause problems should the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime be re-initialized. </p>
<p>The Runnable pointer ownership is transfered to the NetworkRuntime to guarantee the timing of resource cleanup.</p>
<p>The cleanup tasks are run at a critical time in the Shutdown process and should be as simple as possible and make every attempt to no throw any exceptions. If an exception is thrown it is ignored and processing of the next task is started.</p>
<p>The tasks should not assume that any <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> resources are still available and should execute as quickly as possible.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">task</td><td>Pointer to a Runnable object that will now be owned by the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a992a0903a76ed33c10158f56f954d098"></a><!-- doxytag: member="decaf::internal::net::Network::getNetworkRuntime" ref="a992a0903a76ed33c10158f56f954d098" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html">Network</a>* decaf::internal::net::Network::getNetworkRuntime </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the one and only instance of the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> class, if this is called before the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer has been initialized or after it has been shutdown then an IllegalStateException is thrown. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> runtime for the Decaf library. </dd></dl>
</div>
</div>
<a class="anchor" id="a93f99ecadb53605b83d22990a243603f"></a><!-- doxytag: member="decaf::internal::net::Network::getRuntimeLock" ref="a93f99ecadb53605b83d22990a243603f" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html">decaf::util::concurrent::Mutex</a>* decaf::internal::net::Network::getRuntimeLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets a pointer to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime's Lock object, this can be used by <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer APIs to synchronize around certain actions such as adding a resource to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer, etc. </p>
<p>The pointer returned is owned by the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> runtime and should not be deleted or copied by the caller.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> Runtime's single Lock instance. </dd></dl>
</div>
</div>
<a class="anchor" id="a2a9d461b2d6daf70717077c23212c18c"></a><!-- doxytag: member="decaf::internal::net::Network::initializeNetworking" ref="a2a9d461b2d6daf70717077c23212c18c" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void decaf::internal::net::Network::initializeNetworking </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize the Networking layer. </p>
</div>
</div>
<a class="anchor" id="a41d070db80e5fe4343c49149325f41d4"></a><!-- doxytag: member="decaf::internal::net::Network::shutdownNetworking" ref="a41d070db80e5fe4343c49149325f41d4" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void decaf::internal::net::Network::shutdownNetworking </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Shutdown the <a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html" title="Internal class used to manage Networking related resources and hide platform dependent calls from the...">Network</a> layer and free any associated resources, classes in the Decaf library that use the networking layer will now fail if used after calling the shutdown method. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/main/decaf/internal/net/<a class="el" href="_network_8h_source.html">Network.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacedecaf.html">decaf</a> </li>
<li class="navelem"><a class="el" href="namespacedecaf_1_1internal.html">internal</a> </li>
<li class="navelem"><a class="el" href="namespacedecaf_1_1internal_1_1net.html">net</a> </li>
<li class="navelem"><a class="el" href="classdecaf_1_1internal_1_1net_1_1_network.html">Network</a> </li>
<li class="footer">Generated on Mon Apr 25 2011 for activemq-cpp-3.4.0 by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
</body>
</html>