FairMQ/v1.2.0/classFairMQTransportFactory.html
2018-05-03 19:53:50 +02:00

335 lines
24 KiB
HTML

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FairMQ: FairMQTransportFactory Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">FairMQ
&#160;<span id="projectnumber">1.2.0</span>
</div>
<div id="projectbrief">C++ Message Passing Framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<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="classFairMQTransportFactory-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">FairMQTransportFactory Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for FairMQTransportFactory:</div>
<div class="dyncontent">
<div class="center"><img src="classFairMQTransportFactory__inherit__graph.png" border="0" usemap="#FairMQTransportFactory_inherit__map" alt="Inheritance graph"/></div>
<map name="FairMQTransportFactory_inherit__map" id="FairMQTransportFactory_inherit__map">
<area shape="rect" id="node2" href="classfair_1_1mq_1_1ofi_1_1TransportFactory.html" title="FairMQ transport factory for the ofi transport (implemented with ZeroMQ + libfabric) ..." alt="" coords="245,5,411,47"/>
<area shape="rect" id="node3" href="classFairMQTransportFactoryNN.html" title="FairMQTransportFactoryNN" alt="" coords="231,71,425,98"/>
<area shape="rect" id="node4" href="classFairMQTransportFactorySHM.html" title="FairMQTransportFactorySHM" alt="" coords="227,122,429,149"/>
<area shape="rect" id="node5" href="classFairMQTransportFactoryZMQ.html" title="FairMQTransportFactoryZMQ" alt="" coords="227,173,429,199"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aafbb0f83fc97a50e96c7e6616bc215c9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#aafbb0f83fc97a50e96c7e6616bc215c9">FairMQTransportFactory</a> (const std::string &amp;id)</td></tr>
<tr class="separator:aafbb0f83fc97a50e96c7e6616bc215c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56b39bedec57fb890cee700bf8653f5a"><td class="memItemLeft" align="right" valign="top"><a id="a56b39bedec57fb890cee700bf8653f5a"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><b>GetId</b> () const -&gt; const std::string</td></tr>
<tr class="separator:a56b39bedec57fb890cee700bf8653f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25118b9f75be87ba31f9ef793ba29014"><td class="memItemLeft" align="right" valign="top">virtual FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a25118b9f75be87ba31f9ef793ba29014">CreateMessage</a> () const =0</td></tr>
<tr class="memdesc:a25118b9f75be87ba31f9ef793ba29014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create empty <a class="el" href="classFairMQMessage.html">FairMQMessage</a>. <a href="#a25118b9f75be87ba31f9ef793ba29014">More...</a><br /></td></tr>
<tr class="separator:a25118b9f75be87ba31f9ef793ba29014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81097c35318ed699cad37accc16d53e9"><td class="memItemLeft" align="right" valign="top">virtual FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a81097c35318ed699cad37accc16d53e9">CreateMessage</a> (const size_t size) const =0</td></tr>
<tr class="memdesc:a81097c35318ed699cad37accc16d53e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new <a class="el" href="classFairMQMessage.html">FairMQMessage</a> of specified size. <a href="#a81097c35318ed699cad37accc16d53e9">More...</a><br /></td></tr>
<tr class="separator:a81097c35318ed699cad37accc16d53e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11bc1c0070058dbed6280b4b847016a4"><td class="memItemLeft" align="right" valign="top">virtual FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a11bc1c0070058dbed6280b4b847016a4">CreateMessage</a> (void *data, const size_t size, fairmq_free_fn *ffn, void *hint=nullptr) const =0</td></tr>
<tr class="memdesc:a11bc1c0070058dbed6280b4b847016a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new <a class="el" href="classFairMQMessage.html">FairMQMessage</a> with user provided buffer and size. <a href="#a11bc1c0070058dbed6280b4b847016a4">More...</a><br /></td></tr>
<tr class="separator:a11bc1c0070058dbed6280b4b847016a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305b591e6cfe7e5691154c968da76075"><td class="memItemLeft" align="right" valign="top"><a id="a305b591e6cfe7e5691154c968da76075"></a>
virtual FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><b>CreateMessage</b> (FairMQUnmanagedRegionPtr &amp;unmanagedRegion, void *data, const size_t size, void *hint=0) const =0</td></tr>
<tr class="separator:a305b591e6cfe7e5691154c968da76075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2872a32434f683e0ba83ac9ffbf9367"><td class="memItemLeft" align="right" valign="top"><a id="ab2872a32434f683e0ba83ac9ffbf9367"></a>
virtual FairMQSocketPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#ab2872a32434f683e0ba83ac9ffbf9367">CreateSocket</a> (const std::string &amp;type, const std::string &amp;name) const =0</td></tr>
<tr class="memdesc:ab2872a32434f683e0ba83ac9ffbf9367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a socket. <br /></td></tr>
<tr class="separator:ab2872a32434f683e0ba83ac9ffbf9367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6de98e1652b6ad68e4d78dd31eea40cc"><td class="memItemLeft" align="right" valign="top"><a id="a6de98e1652b6ad68e4d78dd31eea40cc"></a>
virtual FairMQPollerPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a6de98e1652b6ad68e4d78dd31eea40cc">CreatePoller</a> (const std::vector&lt; <a class="el" href="classFairMQChannel.html">FairMQChannel</a> &gt; &amp;channels) const =0</td></tr>
<tr class="memdesc:a6de98e1652b6ad68e4d78dd31eea40cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a poller for a single channel (all subchannels) <br /></td></tr>
<tr class="separator:a6de98e1652b6ad68e4d78dd31eea40cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5aa8404e8e172fe56245a57e905d8aa"><td class="memItemLeft" align="right" valign="top"><a id="ab5aa8404e8e172fe56245a57e905d8aa"></a>
virtual FairMQPollerPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#ab5aa8404e8e172fe56245a57e905d8aa">CreatePoller</a> (const std::vector&lt; const <a class="el" href="classFairMQChannel.html">FairMQChannel</a> *&gt; &amp;channels) const =0</td></tr>
<tr class="memdesc:ab5aa8404e8e172fe56245a57e905d8aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a poller for specific channels. <br /></td></tr>
<tr class="separator:ab5aa8404e8e172fe56245a57e905d8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fd308e4e5203814ca7012ef526d3fdf"><td class="memItemLeft" align="right" valign="top"><a id="a7fd308e4e5203814ca7012ef526d3fdf"></a>
virtual FairMQPollerPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a7fd308e4e5203814ca7012ef526d3fdf">CreatePoller</a> (const std::unordered_map&lt; std::string, std::vector&lt; <a class="el" href="classFairMQChannel.html">FairMQChannel</a> &gt;&gt; &amp;channelsMap, const std::vector&lt; std::string &gt; &amp;channelList) const =0</td></tr>
<tr class="memdesc:a7fd308e4e5203814ca7012ef526d3fdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a poller for specific channels (all subchannels) <br /></td></tr>
<tr class="separator:a7fd308e4e5203814ca7012ef526d3fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd1764c674cd2565b6cdefba75f424a9"><td class="memItemLeft" align="right" valign="top"><a id="abd1764c674cd2565b6cdefba75f424a9"></a>
virtual FairMQPollerPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#abd1764c674cd2565b6cdefba75f424a9">CreatePoller</a> (const <a class="el" href="classFairMQSocket.html">FairMQSocket</a> &amp;cmdSocket, const <a class="el" href="classFairMQSocket.html">FairMQSocket</a> &amp;dataSocket) const =0</td></tr>
<tr class="memdesc:abd1764c674cd2565b6cdefba75f424a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a poller for two sockets. <br /></td></tr>
<tr class="separator:abd1764c674cd2565b6cdefba75f424a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a307e8b490d27e1b94deafe1e24671d0d"><td class="memItemLeft" align="right" valign="top"><a id="a307e8b490d27e1b94deafe1e24671d0d"></a>
virtual FairMQUnmanagedRegionPtr&#160;</td><td class="memItemRight" valign="bottom"><b>CreateUnmanagedRegion</b> (const size_t size, FairMQRegionCallback callback=nullptr) const =0</td></tr>
<tr class="separator:a307e8b490d27e1b94deafe1e24671d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b74e577f9136ed20e8a4b3a12f9eaf7"><td class="memItemLeft" align="right" valign="top"><a id="a5b74e577f9136ed20e8a4b3a12f9eaf7"></a>
virtual FairMQ::Transport&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQTransportFactory.html#a5b74e577f9136ed20e8a4b3a12f9eaf7">GetType</a> () const =0</td></tr>
<tr class="memdesc:a5b74e577f9136ed20e8a4b3a12f9eaf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get transport type. <br /></td></tr>
<tr class="separator:a5b74e577f9136ed20e8a4b3a12f9eaf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85e72772d8f80e16c9d7fac2087f0154"><td class="memItemLeft" align="right" valign="top"><a id="a85e72772d8f80e16c9d7fac2087f0154"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Interrupt</b> ()=0</td></tr>
<tr class="separator:a85e72772d8f80e16c9d7fac2087f0154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b140f7ca77c47d8dded30ed15f5a8bf"><td class="memItemLeft" align="right" valign="top"><a id="a3b140f7ca77c47d8dded30ed15f5a8bf"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Resume</b> ()=0</td></tr>
<tr class="separator:a3b140f7ca77c47d8dded30ed15f5a8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa205c82635147a509f347772b6b1b2b0"><td class="memTemplParams" colspan="2"><a id="aa205c82635147a509f347772b6b1b2b0"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa205c82635147a509f347772b6b1b2b0"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr&#160;</td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessage</b> (const T &amp;data) const</td></tr>
<tr class="separator:aa205c82635147a509f347772b6b1b2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629616759b08054968b631939513a3af"><td class="memTemplParams" colspan="2"><a id="a629616759b08054968b631939513a3af"></a>
template&lt;std::size_t N&gt; </td></tr>
<tr class="memitem:a629616759b08054968b631939513a3af"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr&#160;</td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessage</b> (const char(&amp;data)[N]) const</td></tr>
<tr class="separator:a629616759b08054968b631939513a3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95787b67d0602c1bf6c9d0c311b04ca0"><td class="memItemLeft" align="right" valign="top"><a id="a95787b67d0602c1bf6c9d0c311b04ca0"></a>
FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><b>NewSimpleMessage</b> (const std::string &amp;str) const</td></tr>
<tr class="separator:a95787b67d0602c1bf6c9d0c311b04ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5f1390ec7571b4d0e6cbe3cc3f92656"><td class="memTemplParams" colspan="2"><a id="ae5f1390ec7571b4d0e6cbe3cc3f92656"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae5f1390ec7571b4d0e6cbe3cc3f92656"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr&#160;</td><td class="memTemplItemRight" valign="bottom"><b>NewStaticMessage</b> (const T &amp;data) const</td></tr>
<tr class="separator:ae5f1390ec7571b4d0e6cbe3cc3f92656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2515ea8a834cfddb52192c52965e306a"><td class="memItemLeft" align="right" valign="top"><a id="a2515ea8a834cfddb52192c52965e306a"></a>
FairMQMessagePtr&#160;</td><td class="memItemRight" valign="bottom"><b>NewStaticMessage</b> (const std::string &amp;str) const</td></tr>
<tr class="separator:a2515ea8a834cfddb52192c52965e306a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a702085eb13b47c137a1ccb631249bfb8"><td class="memItemLeft" align="right" valign="top"><a id="a702085eb13b47c137a1ccb631249bfb8"></a>
static auto&#160;</td><td class="memItemRight" valign="bottom"><b>CreateTransportFactory</b> (const std::string &amp;type, const std::string &amp;id=&quot;&quot;, const <a class="el" href="classFairMQProgOptions.html">FairMQProgOptions</a> *config=nullptr) -&gt; std::shared_ptr&lt; <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> &gt;</td></tr>
<tr class="separator:a702085eb13b47c137a1ccb631249bfb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e3f845a722ba2c7effb7ba4d609be8b"><td class="memItemLeft" align="right" valign="top"><a id="a1e3f845a722ba2c7effb7ba4d609be8b"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>FairMQNoCleanup</b> (void *, void *)</td></tr>
<tr class="separator:a1e3f845a722ba2c7effb7ba4d609be8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749b6b1f0c527a2ea28e9d78e5953a98"><td class="memTemplParams" colspan="2"><a id="a749b6b1f0c527a2ea28e9d78e5953a98"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a749b6b1f0c527a2ea28e9d78e5953a98"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>FairMQSimpleMsgCleanup</b> (void *, void *obj)</td></tr>
<tr class="separator:a749b6b1f0c527a2ea28e9d78e5953a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aafbb0f83fc97a50e96c7e6616bc215c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafbb0f83fc97a50e96c7e6616bc215c9">&#9670;&nbsp;</a></span>FairMQTransportFactory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FairMQTransportFactory::FairMQTransportFactory </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>ctor </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Topology wide unique id, usually the device id. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a25118b9f75be87ba31f9ef793ba29014"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25118b9f75be87ba31f9ef793ba29014">&#9670;&nbsp;</a></span>CreateMessage() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual FairMQMessagePtr FairMQTransportFactory::CreateMessage </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create empty <a class="el" href="classFairMQMessage.html">FairMQMessage</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to <a class="el" href="classFairMQMessage.html">FairMQMessage</a> </dd></dl>
<p>Implemented in <a class="el" href="classFairMQTransportFactoryZMQ.html#a66132dddeada9337588c12a80286e46d">FairMQTransportFactoryZMQ</a>, <a class="el" href="classfair_1_1mq_1_1ofi_1_1TransportFactory.html#a47a56c22fce2560d2df0b7c2a8de5b7b">fair::mq::ofi::TransportFactory</a>, <a class="el" href="classFairMQTransportFactorySHM.html#a77aa402c6fe37941fba8c7826f9275a3">FairMQTransportFactorySHM</a>, and <a class="el" href="classFairMQTransportFactoryNN.html#a5dc75057d13c215f6b8d516cd06b735a">FairMQTransportFactoryNN</a>.</p>
</div>
</div>
<a id="a81097c35318ed699cad37accc16d53e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81097c35318ed699cad37accc16d53e9">&#9670;&nbsp;</a></span>CreateMessage() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual FairMQMessagePtr FairMQTransportFactory::CreateMessage </td>
<td>(</td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create new <a class="el" href="classFairMQMessage.html">FairMQMessage</a> of specified size. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>message size </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to <a class="el" href="classFairMQMessage.html">FairMQMessage</a> </dd></dl>
<p>Implemented in <a class="el" href="classFairMQTransportFactoryZMQ.html#a4010b715a36796ca2d8c7b2181eb883b">FairMQTransportFactoryZMQ</a>, <a class="el" href="classFairMQTransportFactorySHM.html#ac96d5b86543c4d2420bd210647c8319c">FairMQTransportFactorySHM</a>, and <a class="el" href="classFairMQTransportFactoryNN.html#a256e316db274d5bc8c63100d28b2795c">FairMQTransportFactoryNN</a>.</p>
</div>
</div>
<a id="a11bc1c0070058dbed6280b4b847016a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11bc1c0070058dbed6280b4b847016a4">&#9670;&nbsp;</a></span>CreateMessage() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual FairMQMessagePtr FairMQTransportFactory::CreateMessage </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fairmq_free_fn *&#160;</td>
<td class="paramname"><em>ffn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>hint</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create new <a class="el" href="classFairMQMessage.html">FairMQMessage</a> with user provided buffer and size. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>pointer to user provided buffer </td></tr>
<tr><td class="paramname">size</td><td>size of the user provided buffer </td></tr>
<tr><td class="paramname">ffn</td><td>callback, called when the message is transfered (and can be deleted) </td></tr>
<tr><td class="paramname">obj</td><td>optional helper pointer that can be used in the callback </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to <a class="el" href="classFairMQMessage.html">FairMQMessage</a> </dd></dl>
<p>Implemented in <a class="el" href="classFairMQTransportFactoryZMQ.html#ad037612af77c98572f15ae60a934640a">FairMQTransportFactoryZMQ</a>, <a class="el" href="classFairMQTransportFactorySHM.html#a6ac1dbb4f86dcff2ee3f7e7732617662">FairMQTransportFactorySHM</a>, and <a class="el" href="classFairMQTransportFactoryNN.html#a761984ebee13133f6ad2f3b8bec65029">FairMQTransportFactoryNN</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>fairmq/<a class="el" href="FairMQTransportFactory_8h_source.html">FairMQTransportFactory.h</a></li>
<li>fairmq/FairMQTransportFactory.cxx</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>