📄 a00743.html
字号:
<!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>OpenDDS: OpenDDS::DCPS::TransportFactory 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.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical List</span></a></li>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="a01301.html">OpenDDS</a>::<a class="el" href="a01275.html">DCPS</a>::<a class="el" href="a00743.html">TransportFactory</a></div>
<h1>OpenDDS::DCPS::TransportFactory Class Reference</h1><!-- doxytag: class="OpenDDS::DCPS::TransportFactory" --><code>#include <TransportFactory.h></code>
<p>
Collaboration diagram for OpenDDS::DCPS::TransportFactory:<p><center><img src="a02855.png" border="0" usemap="#a02856" alt="Collaboration graph"></center>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00104.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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#163d6ab549decb1b273e17e4e76bf385">TransportFactory</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default Ctor. <a href="#163d6ab549decb1b273e17e4e76bf385"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#32bf21c48b718eafb3fabcfca610728f">~TransportFactory</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Dtor. <a href="#32bf21c48b718eafb3fabcfca610728f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#caa50a532e4070252116bb4f05d28383">register_simpletcp</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register the SimpleTcp transport since it's part of the DDSDcps library. <a href="#caa50a532e4070252116bb4f05d28383"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#ceb3681579aed19680c9b7817f829763">release</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#d0f89b688f86b82854cf89ff761ed1f0">release</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> impl_id)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#0e3ea4afc5cc13645e982bce73657f1e">register_generator</a> (const ACE_TCHAR *name, <a class="el" href="a00744.html">TransportGenerator</a> *generator)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#4f21b8de422270a3576e54fb30ff9000">load_transport_configuration</a> (ACE_Configuration_Heap &cf)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportConfiguration_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#a0841fa22ed206f9a1be9640acfa7058">get_configuration</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportConfiguration_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#091f8690ebe924cdd0b9936247401198">create_configuration</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id, ACE_TString transport_type)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportConfiguration_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#30ade038a804b71a88178835713e6cc4">get_or_create_configuration</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id, ACE_TString transport_type)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportImpl_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#5569eb0b14c83334d91e75b79ede1bc7">create_transport_impl</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id, bool auto_configure=<a class="el" href="a01275.html#441102b269f6d269438265b0cb70218a">AUTO_CONFIG</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportImpl_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#107699913f3172c272669d980a56f98c">create_transport_impl</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id, ACE_TString transport_type, bool auto_configure=<a class="el" href="a01275.html#441102b269f6d269438265b0cb70218a">AUTO_CONFIG</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportImpl_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#342530e00ec4616f2c898b3bb9a462ae">obtain</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> impl_id)</td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00743.html">TransportFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#43ca6c25a3a481b5c96626b2d59caabc">instance</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a singleton instance of this class. <a href="#43ca6c25a3a481b5c96626b2d59caabc"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< ACE_TString,<br>
<a class="el" href="a00639.html">TransportGenerator_rch</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#8b2eeebaf8c188698d619969fa8a8b18">GeneratorMap</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a>,<br>
<a class="el" href="a00639.html">TransportConfiguration_rch</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#b6276d6c1b47d6a5af06056a85729b57">ConfigurationMap</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="a01275.html#7fc8dc3a40aea1cebaa1ddb23585dc2d">FactoryIdType</a>,<br>
<a class="el" href="a00639.html">TransportImplFactory_rch</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#cf2f291521a9b92cbdd612a924828543">ImplTypeMap</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a>,<br>
<a class="el" href="a00639.html">TransportImpl_rch</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#0f2f00a4cf52dd316d821550408075fe">ImplMap</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_SYNCH_MUTEX </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#a3a1eaa767bea1323f7159cfbe16aeaa">LockType</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Thread Lock type. <a href="#a3a1eaa767bea1323f7159cfbe16aeaa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Guard< <a class="el" href="a00743.html#a3a1eaa767bea1323f7159cfbe16aeaa">LockType</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#5721b314bf8d8b09e036a442acada3ac">GuardType</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Thread Guard type. <a href="#5721b314bf8d8b09e036a442acada3ac"></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"><a class="el" href="a00639.html">TransportImplFactory_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#60918a703afb6e3b9cdd02efc995fabd">get_or_create_factory</a> (<a class="el" href="a01275.html#7fc8dc3a40aea1cebaa1ddb23585dc2d">FactoryIdType</a> factory_id)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#9afe6df18d8f801b0cea25a06402aa40">register_factory</a> (<a class="el" href="a01275.html#7fc8dc3a40aea1cebaa1ddb23585dc2d">FactoryIdType</a> factory_id, <a class="el" href="a00639.html">TransportImplFactory_rch</a> impl_factory)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind the factory_id->TransportImplFactory_rch to the impl_type_map_. <a href="#9afe6df18d8f801b0cea25a06402aa40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#043c5605d8513ada301eefeda7718467">register_configuration</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> transport_id, <a class="el" href="a00639.html">TransportConfiguration_rch</a> config)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind the transport_id->TransportConfigInfo object to the configuration_map_. <a href="#043c5605d8513ada301eefeda7718467"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportImpl_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#9d37f8ba1e9ec41769199638cf29101c">create_transport_impl_i</a> (<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a> impl_id, <a class="el" href="a01275.html#7fc8dc3a40aea1cebaa1ddb23585dc2d">FactoryIdType</a> type_id)</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="a00743.html#8b2eeebaf8c188698d619969fa8a8b18">GeneratorMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#0965f6cffcd7f67264f62906c798e1b5">generator_map_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The map of registered <a class="el" href="a00744.html">TransportGenerator</a> object from the concrete transport library. <a href="#0965f6cffcd7f67264f62906c798e1b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00743.html#b6276d6c1b47d6a5af06056a85729b57">ConfigurationMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#fc898f0e312b2d50068097cd8e1365c2">configuration_map_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The map of the registered configuration information for the transport configured. <a href="#fc898f0e312b2d50068097cd8e1365c2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00743.html#cf2f291521a9b92cbdd612a924828543">ImplTypeMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#274750799d321095042450174070ca08">impl_type_map_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The map of registered <a class="el" href="a00747.html">TransportImplFactory</a> objects. <a href="#274750799d321095042450174070ca08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00743.html#0f2f00a4cf52dd316d821550408075fe">ImplMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#f3f7182bae21ec014f35d2e00c9bfbf6">impl_map_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The map of <a class="el" href="a00746.html">TransportImpl</a> objects that have been create()'d. <a href="#f3f7182bae21ec014f35d2e00c9bfbf6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00743.html#a3a1eaa767bea1323f7159cfbe16aeaa">LockType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00743.html#329d5c5b6e68025aad2d6fbe24fac7cd">lock_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Thread lock used to protect simultaneous access to the maps. <a href="#329d5c5b6e68025aad2d6fbe24fac7cd"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="a00743.html">TransportFactory</a> is a singleton object which provides a mechanism to the application code to create objects of individual transport implementations. It is possible to have more than a single object of a given implementation in order to support separation of communications between different <a class="el" href="a01300.html">DDS</a> Domains or application defined areas of control.<p>
Notes about object ownership: 1) Own the transport configuration objects, transport implementation objects and <a class="el" href="a00752.html">TransportReactorTask</a> object.
<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="b6276d6c1b47d6a5af06056a85729b57"></a><!-- doxytag: member="OpenDDS::DCPS::TransportFactory::ConfigurationMap" ref="b6276d6c1b47d6a5af06056a85729b57" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::map<<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a>, <a class="el" href="a00639.html">TransportConfiguration_rch</a>> <a class="el" href="a00743.html#b6276d6c1b47d6a5af06056a85729b57">OpenDDS::DCPS::TransportFactory::ConfigurationMap</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The "TransportConfiguration Map"<p>
Key == "transport id" Value == <a class="el" href="a00741.html">TransportConfiguration</a> object
</div>
</div><p>
<a class="anchor" name="8b2eeebaf8c188698d619969fa8a8b18"></a><!-- doxytag: member="OpenDDS::DCPS::TransportFactory::GeneratorMap" ref="8b2eeebaf8c188698d619969fa8a8b18" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::map<ACE_TString, <a class="el" href="a00639.html">TransportGenerator_rch</a>> <a class="el" href="a00743.html#8b2eeebaf8c188698d619969fa8a8b18">OpenDDS::DCPS::TransportFactory::GeneratorMap</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The "Transport registration Map"<p>
Key == "Transport type" Value == <a class="el" href="a00744.html">TransportGenerator</a> object
</div>
</div><p>
<a class="anchor" name="5721b314bf8d8b09e036a442acada3ac"></a><!-- doxytag: member="OpenDDS::DCPS::TransportFactory::GuardType" ref="5721b314bf8d8b09e036a442acada3ac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ACE_Guard<<a class="el" href="a00743.html#a3a1eaa767bea1323f7159cfbe16aeaa">LockType</a>> <a class="el" href="a00743.html#5721b314bf8d8b09e036a442acada3ac">OpenDDS::DCPS::TransportFactory::GuardType</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Thread Guard type.
<p>
</div>
</div><p>
<a class="anchor" name="0f2f00a4cf52dd316d821550408075fe"></a><!-- doxytag: member="OpenDDS::DCPS::TransportFactory::ImplMap" ref="0f2f00a4cf52dd316d821550408075fe" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::map<<a class="el" href="a01275.html#3bc80074a988eec5e1def4a3d65906fa">TransportIdType</a>, <a class="el" href="a00639.html">TransportImpl_rch</a>> <a class="el" href="a00743.html#0f2f00a4cf52dd316d821550408075fe">OpenDDS::DCPS::TransportFactory::ImplMap</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The "Impl Map"<p>
Key == "TransportImpl instance id" Value == <a class="el" href="a00746.html">TransportImpl</a> object
</div>
</div><p>
<a class="anchor" name="cf2f291521a9b92cbdd612a924828543"></a><!-- doxytag: member="OpenDDS::DCPS::TransportFactory::ImplTypeMap" ref="cf2f291521a9b92cbdd612a924828543" args="" -->
<div class="memitem">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -