Add API docs for v1.4.33
274
v1.4.33/AsioAsyncOp_8h_source.html
Normal file
@@ -0,0 +1,274 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/AsioAsyncOp.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">AsioAsyncOp.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_ASIOASYNCOP_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_ASIOASYNCOP_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <asio/associated_allocator.hpp></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <asio/associated_executor.hpp></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <asio/executor_work_guard.hpp></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <asio/dispatch.hpp></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <asio/system_executor.hpp></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <exception></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <fairmq/sdk/Error.h></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <fairmq/sdk/Traits.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <system_error></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <type_traits></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <fairlogger/Logger.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef FAIR_LOG</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define FAIR_LOG LOG</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#endif </span><span class="comment">/* ifndef FAIR_LOG */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span><<span class="keyword">typename</span>... SignatureArgTypes></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html"> 36</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">AsioAsyncOpImplBase</a></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">virtual</span> <span class="keyword">auto</span> Complete(std::error_code, SignatureArgTypes...) -> <span class="keywordtype">void</span> = 0;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">virtual</span> <span class="keyword">auto</span> IsCompleted() <span class="keyword">const</span> -> <span class="keywordtype">bool</span> = 0;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> };</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span><<span class="keyword">typename</span> Executor1, <span class="keyword">typename</span> Allocator1, <span class="keyword">typename</span> Handler, <span class="keyword">typename</span>... SignatureArgTypes></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html"> 47</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html">AsioAsyncOpImpl</a> : <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">AsioAsyncOpImplBase</a><SignatureArgTypes...></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a820a239d34fbcf405ba17a34ad1f44ed"> 50</a></span>  <span class="keyword">using</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a820a239d34fbcf405ba17a34ad1f44ed">Allocator2</a> = <span class="keyword">typename</span> asio::associated_allocator<Handler, Allocator1>::type;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a4b1a39b8b234928a75c78d71a3c29774"> 53</a></span>  <span class="keyword">using</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a4b1a39b8b234928a75c78d71a3c29774">Executor2</a> = <span class="keyword">typename</span> asio::associated_executor<Handler, Executor1>::type;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a26eb6b7a6579693bd95fa1feff298a78"> 56</a></span>  <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a26eb6b7a6579693bd95fa1feff298a78">AsioAsyncOpImpl</a>(<span class="keyword">const</span> Executor1& ex1, Allocator1 alloc1, Handler&& handler)</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  : fWork1(ex1)</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  , fWork2(asio::get_associated_executor(handler, ex1))</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  , fHandler(std::move(handler))</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  , fAlloc1(std::move(alloc1))</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {}</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">auto</span> GetAlloc2() const -> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a820a239d34fbcf405ba17a34ad1f44ed">Allocator2</a> { <span class="keywordflow">return</span> asio::get_associated_allocator(fHandler, fAlloc1); }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">auto</span> GetEx2() const -> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a4b1a39b8b234928a75c78d71a3c29774">Executor2</a> { <span class="keywordflow">return</span> asio::get_associated_executor(fWork2); }</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">auto</span> Complete(std::error_code ec, SignatureArgTypes... args) -> <span class="keywordtype">void</span> <span class="keyword">override</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">if</span> (IsCompleted()) {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">throw</span> RuntimeError(<span class="stringliteral">"Async operation already completed"</span>);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  asio::dispatch(GetEx2(),</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  [=, handler = std::move(fHandler)]() <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  handler(ec, args...);</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  FAIR_LOG(error) << <span class="stringliteral">"Uncaught exception in AsioAsyncOp completion handler: "</span> << e.what();</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  } <span class="keywordflow">catch</span> (...) {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  FAIR_LOG(error) << <span class="stringliteral">"Unknown uncaught exception in AsioAsyncOp completion handler."</span>;</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  });</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  fWork1.reset();</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  fWork2.reset();</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">auto</span> IsCompleted() const -> <span class="keywordtype">bool</span><span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> !fWork1.owns_work() && !fWork2.owns_work();</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  asio::executor_work_guard<Executor1> fWork1;</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  asio::executor_work_guard<Executor2> fWork2;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  Handler fHandler;</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  Allocator1 fAlloc1;</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> };</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span><<span class="keyword">typename</span> Executor, <span class="keyword">typename</span> Allocator, <span class="keyword">typename</span> CompletionSignature></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html"> 114</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">AsioAsyncOp</a></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> };</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span><<span class="keyword">typename</span> Executor,</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">typename</span> Allocator,</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">typename</span> SignatureReturnType,</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">typename</span> SignatureFirstArgType,</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">typename</span>... SignatureArgTypes></div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html"> 132</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">AsioAsyncOp</a><Executor,</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  Allocator,</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> {</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  static_assert(std::is_void<SignatureReturnType>::value,</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="stringliteral">"return value of CompletionSignature must be void"</span>);</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  static_assert(std::is_same<SignatureFirstArgType, std::error_code>::value,</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="stringliteral">"first argument of CompletionSignature must be std::error_code"</span>);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">using</span> Duration = std::chrono::milliseconds;</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">using</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">Impl</a> = <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">AsioAsyncOpImplBase</a><SignatureArgTypes...>;</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">using</span> ImplPtr = std::unique_ptr<<a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">Impl</a>, std::function<void(<a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">Impl</a>*)>>;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  ImplPtr fImpl;</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#ad62e4a9633bd1f012fc022dd52f8153d"> 149</a></span>  <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#ad62e4a9633bd1f012fc022dd52f8153d">AsioAsyncOp</a>()</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  : fImpl(nullptr)</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {}</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Handler></div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a11a13917dc6e83e4815523e6603c7463"> 155</a></span>  <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a11a13917dc6e83e4815523e6603c7463">AsioAsyncOp</a>(Executor ex1, Allocator alloc1, Handler&& handler)</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">AsioAsyncOp</a>()</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// Async operation type to be allocated and constructed</span></div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">using</span> Op = <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html">AsioAsyncOpImpl</a><Executor, Allocator, Handler, SignatureArgTypes...>;</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Create allocator for concrete op type</span></div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// Allocator2, see https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/reference/asynchronous_operations.html#boost_asio.reference.asynchronous_operations.allocation_of_intermediate_storage</span></div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">using</span> OpAllocator =</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">typename</span> std::allocator_traits<typename Op::Allocator2>::template rebind_alloc<Op>;</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  OpAllocator opAlloc;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// Allocate memory</span></div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">auto</span> mem(std::allocator_traits<OpAllocator>::allocate(opAlloc, 1));</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// Construct object</span></div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">auto</span> ptr(<span class="keyword">new</span> (mem) Op(std::move(ex1),</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  std::move(alloc1),</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  std::forward<Handler>(handler)));</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// Assign ownership to this object</span></div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  fImpl = ImplPtr(ptr, [opAlloc](<a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">Impl</a>* p) <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  std::allocator_traits<OpAllocator>::deallocate(opAlloc, <span class="keyword">static_cast<</span>Op*<span class="keyword">></span>(p), 1);</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  });</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Handler></div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a5157440e65748510a879b0ea4430ed95"> 183</a></span>  <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a5157440e65748510a879b0ea4430ed95">AsioAsyncOp</a>(Executor ex1, Handler&& handler)</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">AsioAsyncOp</a>(std::move(ex1), Allocator(), std::forward<Handler>(handler))</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {}</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Handler></div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#aeb131dbcf485df823d5fd4bc787361a3"> 189</a></span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#aeb131dbcf485df823d5fd4bc787361a3">AsioAsyncOp</a>(Handler&& handler)</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">AsioAsyncOp</a>(asio::system_executor(), std::forward<Handler>(handler))</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {}</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">auto</span> IsCompleted() -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> (fImpl == <span class="keyword">nullptr</span>) || fImpl->IsCompleted(); }</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">auto</span> Complete(std::error_code ec, SignatureArgTypes... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span>(IsCompleted()) {</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">throw</span> RuntimeError(<span class="stringliteral">"Async operation already completed"</span>);</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  fImpl->Complete(ec, args...);</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  fImpl.reset(<span class="keyword">nullptr</span>);</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">auto</span> Complete(SignatureArgTypes... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  Complete(std::error_code(), args...);</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">auto</span> Cancel(SignatureArgTypes... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  Complete(MakeErrorCode(ErrorCode::OperationCanceled), args...);</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">auto</span> Timeout(SignatureArgTypes... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  Complete(MakeErrorCode(ErrorCode::OperationTimeout), args...);</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> };</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_ASIOASYNCOP_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644_html_ad62e4a9633bd1f012fc022dd52f8153d"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#ad62e4a9633bd1f012fc022dd52f8153d">fair::mq::sdk::AsioAsyncOp< Executor, Allocator, SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)>::AsioAsyncOp</a></div><div class="ttdeci">AsioAsyncOp()</div><div class="ttdoc">Default Ctor.</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:149</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOp_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html">fair::mq::sdk::AsioAsyncOp</a></div><div class="ttdoc">Interface for Asio-compliant asynchronous operation, see https://www.boost.org/doc/libs/1_70_0/doc/ht...</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:115</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html">fair::mq::sdk::AsioAsyncOpImpl</a></div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:48</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl_html_a820a239d34fbcf405ba17a34ad1f44ed"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a820a239d34fbcf405ba17a34ad1f44ed">fair::mq::sdk::AsioAsyncOpImpl::Allocator2</a></div><div class="ttdeci">typename asio::associated_allocator< Handler, Allocator1 >::type Allocator2</div><div class="ttdoc">See https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/reference/asynchronous_operations....</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:50</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644_html_a5157440e65748510a879b0ea4430ed95"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a5157440e65748510a879b0ea4430ed95">fair::mq::sdk::AsioAsyncOp< Executor, Allocator, SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)>::AsioAsyncOp</a></div><div class="ttdeci">AsioAsyncOp(Executor ex1, Handler &&handler)</div><div class="ttdoc">Ctor with handler #2.</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:183</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl_html_a4b1a39b8b234928a75c78d71a3c29774"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a4b1a39b8b234928a75c78d71a3c29774">fair::mq::sdk::AsioAsyncOpImpl::Executor2</a></div><div class="ttdeci">typename asio::associated_executor< Handler, Executor1 >::type Executor2</div><div class="ttdoc">See https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/reference/asynchronous_operations....</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:53</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644_html_aeb131dbcf485df823d5fd4bc787361a3"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#aeb131dbcf485df823d5fd4bc787361a3">fair::mq::sdk::AsioAsyncOp< Executor, Allocator, SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)>::AsioAsyncOp</a></div><div class="ttdeci">AsioAsyncOp(Handler &&handler)</div><div class="ttdoc">Ctor with handler #3.</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:189</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644_html_a11a13917dc6e83e4815523e6603c7463"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html#a11a13917dc6e83e4815523e6603c7463">fair::mq::sdk::AsioAsyncOp< Executor, Allocator, SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)>::AsioAsyncOp</a></div><div class="ttdeci">AsioAsyncOp(Executor ex1, Allocator alloc1, Handler &&handler)</div><div class="ttdoc">Ctor with handler.</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:155</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl_html_a26eb6b7a6579693bd95fa1feff298a78"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html#a26eb6b7a6579693bd95fa1feff298a78">fair::mq::sdk::AsioAsyncOpImpl::AsioAsyncOpImpl</a></div><div class="ttdeci">AsioAsyncOpImpl(const Executor1 &ex1, Allocator1 alloc1, Handler &&handler)</div><div class="ttdoc">Ctor.</div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:56</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html">fair::mq::sdk::AsioAsyncOpImplBase</a></div><div class="ttdef"><b>Definition:</b> AsioAsyncOp.h:37</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
137
v1.4.33/AsioBase_8h_source.html
Normal file
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/AsioBase.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">AsioBase.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_ASIOBASE_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_ASIOBASE_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <asio/any_io_executor.hpp></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/sdk/Traits.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">using</span> DefaultExecutor = asio::any_io_executor;</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">using</span> DefaultAllocator = std::allocator<int>;</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span><<span class="keyword">typename</span> Executor, <span class="keyword">typename</span> Allocator></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>AsioBase</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">using</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aea0e9ea2a6883595ee4a9170e7eb54a1">ExecutorType</a> = Executor;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html"> 40</a></span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aa4a40d98197b0ca731b855f811761741">GetExecutor</a>() const noexcept -> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aea0e9ea2a6883595ee4a9170e7eb54a1">ExecutorType</a> { <span class="keywordflow">return</span> fExecutor; }</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">using</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#ae82b8f9a1053d039542074a6538f51a9">AllocatorType</a> = Allocator;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a10c8108cd520e7a1ec2bced4b80df69d">GetAllocator</a>() const noexcept -> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#ae82b8f9a1053d039542074a6538f51a9">AllocatorType</a> { <span class="keywordflow">return</span> fAllocator; }</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aa4a40d98197b0ca731b855f811761741"> 46</a></span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a4321936e4a92d3e977dff807f0cb3d3f">AsioBase</a>() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#ae82b8f9a1053d039542074a6538f51a9"> 49</a></span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a10c8108cd520e7a1ec2bced4b80df69d"> 51</a></span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a4321936e4a92d3e977dff807f0cb3d3f">AsioBase</a>(Executor ex, Allocator alloc)</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  : fExecutor(std::move(ex))</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  , fAllocator(std::move(alloc))</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a4321936e4a92d3e977dff807f0cb3d3f"> 54</a></span>  {}</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a2711eada1efbf39cba390bdd39427e91"> 57</a></span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a2711eada1efbf39cba390bdd39427e91">AsioBase</a>(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>& operator=(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a4321936e4a92d3e977dff807f0cb3d3f">AsioBase</a>(<a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>&&) noexcept = default;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>& operator=(<a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>&&) noexcept = default;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a271de7ef84469fd2650cec9dc5098d75"> 63</a></span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  ~<a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">AsioBase</a>() = default;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  private:</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a21170be420f2b42843736e497f10a692"> 67</a></span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aea0e9ea2a6883595ee4a9170e7eb54a1">ExecutorType</a> fExecutor;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#ae82b8f9a1053d039542074a6538f51a9">AllocatorType</a> fAllocator;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_ASIOBASE_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_a2711eada1efbf39cba390bdd39427e91"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a2711eada1efbf39cba390bdd39427e91">fair::mq::sdk::AsioBase::AsioBase</a></div><div class="ttdeci">AsioBase(Executor ex, Allocator alloc)</div><div class="ttdoc">Construct with associated I/O executor.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:57</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html">fair::mq::sdk::AsioBase</a></div><div class="ttdoc">Base for creating Asio-enabled I/O objects.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:41</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_aa4a40d98197b0ca731b855f811761741"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aa4a40d98197b0ca731b855f811761741">fair::mq::sdk::AsioBase::GetExecutor</a></div><div class="ttdeci">auto GetExecutor() const noexcept -> ExecutorType</div><div class="ttdoc">Get associated I/O executor.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:46</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_a10c8108cd520e7a1ec2bced4b80df69d"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a10c8108cd520e7a1ec2bced4b80df69d">fair::mq::sdk::AsioBase::GetAllocator</a></div><div class="ttdeci">auto GetAllocator() const noexcept -> AllocatorType</div><div class="ttdoc">Get associated default allocator.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:51</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_ae82b8f9a1053d039542074a6538f51a9"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#ae82b8f9a1053d039542074a6538f51a9">fair::mq::sdk::AsioBase::AllocatorType</a></div><div class="ttdeci">Allocator AllocatorType</div><div class="ttdoc">Member type of associated default allocator.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:49</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_a4321936e4a92d3e977dff807f0cb3d3f"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#a4321936e4a92d3e977dff807f0cb3d3f">fair::mq::sdk::AsioBase::AsioBase</a></div><div class="ttdeci">AsioBase()=delete</div><div class="ttdoc">NO default ctor.</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1AsioBase_html_aea0e9ea2a6883595ee4a9170e7eb54a1"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1AsioBase.html#aea0e9ea2a6883595ee4a9170e7eb54a1">fair::mq::sdk::AsioBase::ExecutorType</a></div><div class="ttdeci">Executor ExecutorType</div><div class="ttdoc">Member type of associated I/O executor.</div><div class="ttdef"><b>Definition:</b> AsioBase.h:44</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
87
v1.4.33/Builtin_8h_source.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/Builtin.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Builtin.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// List of all builtin plugin headers (the ones which call REGISTER_FAIRMQ_PLUGIN macro)</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <fairmq/plugins/config/Config.h></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/plugins/Control.h></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
495
v1.4.33/Commands_8h_source.html
Normal file
@@ -0,0 +1,495 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/commands/Commands.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li><li class="navelem"><a class="el" href="dir_c928bc5e390579a009bbb603e219018d.html">commands</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Commands.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_COMMANDFACTORY</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_COMMANDFACTORY</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/States.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <type_traits></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span>fair::mq::sdk::cmd</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">enum class</span> Format : int {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  Binary,</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  JSON</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> };</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">enum class</span> Result : int {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  Ok,</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  Failure</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> };</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">enum class</span> Type : int</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  check_state, <span class="comment">// args: { }</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  change_state, <span class="comment">// args: { transition }</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  dump_config, <span class="comment">// args: { }</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  subscribe_to_state_change, <span class="comment">// args: { }</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  unsubscribe_from_state_change, <span class="comment">// args: { }</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  state_change_exiting_received, <span class="comment">// args: { }</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  get_properties, <span class="comment">// args: { request_id, property_query }</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  set_properties, <span class="comment">// args: { request_id, properties }</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  subscription_heartbeat, <span class="comment">// args: { interval }</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  current_state, <span class="comment">// args: { device_id, current_state }</span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  transition_status, <span class="comment">// args: { device_id, task_id, Result, transition, current_state }</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  config, <span class="comment">// args: { device_id, config_string }</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  state_change_subscription, <span class="comment">// args: { device_id, task_id, Result }</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  state_change_unsubscription, <span class="comment">// args: { device_id, task_id, Result }</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  state_change, <span class="comment">// args: { device_id, task_id, last_state, current_state }</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  properties, <span class="comment">// args: { device_id, request_id, Result, properties }</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  properties_set <span class="comment">// args: { device_id, request_id, Result }</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">struct </span>Cmd</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">explicit</span> Cmd(<span class="keyword">const</span> Type type) : fType(type) {}</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> ~Cmd() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  Type GetType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fType; }</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html"> 61</a></span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  Type fType;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> };</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState.html">CheckState</a> : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState.html">CheckState</a>() : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a>(Type::check_state) {}</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">struct </span>ChangeState : Cmd</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState.html"> 72</a></span> {</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1ChangeState.html">ChangeState</a>(Transition transition)</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a>(Type::change_state)</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  , fTransition(transition)</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {}</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1ChangeState.html"> 77</a></span>  </div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  Transition GetTransition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTransition; }</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordtype">void</span> SetTransition(Transition transition) { fTransition = transition; }</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  Transition fTransition;</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>DumpConfig : Cmd</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">explicit</span> DumpConfig() : Cmd(Type::dump_config) {}</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">struct </span>SubscribeToStateChange : Cmd</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1DumpConfig.html"> 91</a></span> {</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscribeToStateChange.html">SubscribeToStateChange</a>(int64_t interval)</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a>(Type::subscribe_to_state_change)</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  , fInterval(interval)</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {}</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscribeToStateChange.html"> 96</a></span>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  int64_t GetInterval()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fInterval; }</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">void</span> SetInterval(int64_t interval) { fInterval = interval; }</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  int64_t fInterval;</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct </span>UnsubscribeFromStateChange : Cmd</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> {</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">explicit</span> UnsubscribeFromStateChange() : Cmd(Type::unsubscribe_from_state_change) {}</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> };</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">struct </span>StateChangeExitingReceived : Cmd</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1UnsubscribeFromStateChange.html"> 110</a></span> {</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeExitingReceived.html">StateChangeExitingReceived</a>() : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a>(Type::state_change_exiting_received) {}</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties.html">GetProperties</a> : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeExitingReceived.html"> 115</a></span> {</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties.html">GetProperties</a>(std::size_t request_id, std::string query)</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  : <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">Cmd</a>(Type::get_properties)</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  , fRequestId(request_id)</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  , fQuery(std::move(query))</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties.html"> 120</a></span>  {}</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">auto</span> GetRequestId() const -> std::<span class="keywordtype">size_t</span> { <span class="keywordflow">return</span> fRequestId; }</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">auto</span> SetRequestId(std::size_t requestId) -> <span class="keywordtype">void</span> { fRequestId = requestId; }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">auto</span> GetQuery() const -> std::<span class="keywordtype">string</span> { <span class="keywordflow">return</span> fQuery; }</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">auto</span> SetQuery(std::string query) -> <span class="keywordtype">void</span> { fQuery = std::move(query); }</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  std::size_t fRequestId;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  std::string fQuery;</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> };</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">struct </span>SetProperties : Cmd</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> {</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  SetProperties(std::size_t request_id, std::vector<std::pair<std::string, std::string>> properties)</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  : Cmd(Type::set_properties)</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  , fRequestId(request_id)</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  , fProperties(std::move(properties))</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SetProperties.html"> 138</a></span>  {}</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">auto</span> GetRequestId() const -> std::<span class="keywordtype">size_t</span> { <span class="keywordflow">return</span> fRequestId; }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">auto</span> SetRequestId(std::size_t requestId) -> <span class="keywordtype">void</span> { fRequestId = requestId; }</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">auto</span> GetProps() const -> std::vector<std::pair<std::<span class="keywordtype">string</span>, std::<span class="keywordtype">string</span>>> { <span class="keywordflow">return</span> fProperties; }</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">auto</span> SetProps(std::vector<std::pair<std::string, std::string>> properties) -> <span class="keywordtype">void</span> { fProperties = std::move(properties); }</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  std::size_t fRequestId;</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::vector<std::pair<std::string, std::string>> fProperties;</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">struct </span>SubscriptionHeartbeat : Cmd</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> {</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">explicit</span> SubscriptionHeartbeat(int64_t interval)</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  : Cmd(Type::subscription_heartbeat)</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  , fInterval(interval)</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {}</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscriptionHeartbeat.html"> 156</a></span>  </div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  int64_t GetInterval()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fInterval; }</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordtype">void</span> SetInterval(int64_t interval) { fInterval = interval; }</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  int64_t fInterval;</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> };</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">struct </span>CurrentState : Cmd</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> {</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">explicit</span> CurrentState(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, State currentState)</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  : Cmd(Type::current_state)</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  , fDeviceId(id)</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  , fCurrentState(currentState)</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CurrentState.html"> 170</a></span>  {}</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  fair::mq::State GetCurrentState()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fCurrentState; }</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">void</span> SetCurrentState(fair::mq::State state) { fCurrentState = state; }</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  fair::mq::State fCurrentState;</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> };</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">struct </span>TransitionStatus : Cmd</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> {</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">explicit</span> TransitionStatus(<span class="keyword">const</span> std::string& deviceId, <span class="keyword">const</span> uint64_t taskId, <span class="keyword">const</span> Result result, <span class="keyword">const</span> Transition transition, State currentState)</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  : Cmd(Type::transition_status)</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  , fDeviceId(deviceId)</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  , fTaskId(taskId)</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1TransitionStatus.html"> 188</a></span>  , fResult(result)</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  , fTransition(transition)</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  , fCurrentState(currentState)</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {}</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  uint64_t GetTaskId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTaskId; }</div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">void</span> SetTaskId(<span class="keyword">const</span> uint64_t taskId) { fTaskId = taskId; }</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  Result GetResult()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fResult; }</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordtype">void</span> SetResult(<span class="keyword">const</span> Result result) { fResult = result; }</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  Transition GetTransition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTransition; }</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">void</span> SetTransition(<span class="keyword">const</span> Transition transition) { fTransition = transition; }</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  fair::mq::State GetCurrentState()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fCurrentState; }</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> SetCurrentState(fair::mq::State state) { fCurrentState = state; }</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  </div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  uint64_t fTaskId;</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  Result fResult;</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  Transition fTransition;</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  fair::mq::State fCurrentState;</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> };</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">struct </span>Config : Cmd</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> {</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">explicit</span> Config(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> std::string& config)</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  : Cmd(Type::config)</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  , fDeviceId(id)</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  , fConfig(config)</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Config.html"> 218</a></span>  {}</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  std::string GetConfig()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig; }</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordtype">void</span> SetConfig(<span class="keyword">const</span> std::string& config) { fConfig = config; }</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  std::string fConfig;</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> };</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">struct </span>StateChangeSubscription : Cmd</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> {</div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">explicit</span> StateChangeSubscription(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> uint64_t taskId, <span class="keyword">const</span> Result result)</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  : Cmd(Type::state_change_subscription)</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  , fDeviceId(id)</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  , fTaskId(taskId)</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeSubscription.html"> 236</a></span>  , fResult(result)</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  {}</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  uint64_t GetTaskId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTaskId; }</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">void</span> SetTaskId(<span class="keyword">const</span> uint64_t taskId) { fTaskId = taskId; }</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  Result GetResult()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fResult; }</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordtype">void</span> SetResult(<span class="keyword">const</span> Result result) { fResult = result; }</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  uint64_t fTaskId;</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  Result fResult;</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> };</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">struct </span>StateChangeUnsubscription : Cmd</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> {</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">explicit</span> StateChangeUnsubscription(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> uint64_t taskId, <span class="keyword">const</span> Result result)</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  : Cmd(Type::state_change_unsubscription)</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  , fDeviceId(id)</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  , fTaskId(taskId)</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeUnsubscription.html"> 258</a></span>  , fResult(result)</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {}</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  uint64_t GetTaskId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTaskId; }</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordtype">void</span> SetTaskId(<span class="keyword">const</span> uint64_t taskId) { fTaskId = taskId; }</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  Result GetResult()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fResult; }</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordtype">void</span> SetResult(<span class="keyword">const</span> Result result) { fResult = result; }</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  uint64_t fTaskId;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  Result fResult;</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> };</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">struct </span>StateChange : Cmd</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> {</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">explicit</span> StateChange(<span class="keyword">const</span> std::string& deviceId, <span class="keyword">const</span> uint64_t taskId, <span class="keyword">const</span> State lastState, <span class="keyword">const</span> State currentState)</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  : Cmd(Type::state_change)</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  , fDeviceId(deviceId)</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  , fTaskId(taskId)</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChange.html"> 280</a></span>  , fLastState(lastState)</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  , fCurrentState(currentState)</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {}</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  std::string GetDeviceId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">void</span> SetDeviceId(<span class="keyword">const</span> std::string& deviceId) { fDeviceId = deviceId; }</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  uint64_t GetTaskId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTaskId; }</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordtype">void</span> SetTaskId(<span class="keyword">const</span> uint64_t taskId) { fTaskId = taskId; }</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  fair::mq::State GetLastState()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fLastState; }</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">void</span> SetLastState(<span class="keyword">const</span> fair::mq::State state) { fLastState = state; }</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  fair::mq::State GetCurrentState()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fCurrentState; }</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">void</span> SetCurrentState(<span class="keyword">const</span> fair::mq::State state) { fCurrentState = state; }</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  uint64_t fTaskId;</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  fair::mq::State fLastState;</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  fair::mq::State fCurrentState;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> };</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">struct </span>Properties : Cmd</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> {</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  Properties(std::string deviceId, std::size_t requestId, <span class="keyword">const</span> Result result, std::vector<std::pair<std::string, std::string>> properties)</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  : Cmd(Type::properties)</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  , fDeviceId(std::move(deviceId))</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  , fRequestId(requestId)</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Properties.html"> 306</a></span>  , fResult(result)</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  , fProperties(std::move(properties))</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {}</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">auto</span> GetDeviceId() const -> std::<span class="keywordtype">string</span> { <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">auto</span> SetDeviceId(std::string deviceId) -> <span class="keywordtype">void</span> { fDeviceId = std::move(deviceId); }</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">auto</span> GetRequestId() const -> std::<span class="keywordtype">size_t</span> { <span class="keywordflow">return</span> fRequestId; }</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keyword">auto</span> SetRequestId(std::size_t requestId) -> <span class="keywordtype">void</span> { fRequestId = requestId; }</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">auto</span> GetResult() const -> Result { <span class="keywordflow">return</span> fResult; }</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">auto</span> SetResult(Result result) -> <span class="keywordtype">void</span> { fResult = result; }</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">auto</span> GetProps() const -> std::vector<std::pair<std::<span class="keywordtype">string</span>, std::<span class="keywordtype">string</span>>> { <span class="keywordflow">return</span> fProperties; }</div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">auto</span> SetProps(std::vector<std::pair<std::string, std::string>> properties) -> <span class="keywordtype">void</span> { fProperties = std::move(properties); }</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  std::size_t fRequestId;</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  Result fResult;</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  std::vector<std::pair<std::string, std::string>> fProperties;</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> };</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">struct </span>PropertiesSet : Cmd {</div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  PropertiesSet(std::string deviceId, std::size_t requestId, Result result)</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  : Cmd(Type::properties_set)</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  , fDeviceId(std::move(deviceId))</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  , fRequestId(requestId)</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  , fResult(result)</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1PropertiesSet.html"> 332</a></span>  {}</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">auto</span> GetDeviceId() const -> std::<span class="keywordtype">string</span> { <span class="keywordflow">return</span> fDeviceId; }</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">auto</span> SetDeviceId(std::string deviceId) -> <span class="keywordtype">void</span> { fDeviceId = std::move(deviceId); }</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">auto</span> GetRequestId() const -> std::<span class="keywordtype">size_t</span> { <span class="keywordflow">return</span> fRequestId; }</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">auto</span> SetRequestId(std::size_t requestId) -> <span class="keywordtype">void</span> { fRequestId = requestId; }</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">auto</span> GetResult() const -> Result { <span class="keywordflow">return</span> fResult; }</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">auto</span> SetResult(Result result) -> <span class="keywordtype">void</span> { fResult = result; }</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  std::size_t fRequestId;</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  Result fResult;</div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> };</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span><<span class="keyword">typename</span> C, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> std::unique_ptr<Cmd> make(Args&&... args)</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> {</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> std::make_unique<C>(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> }</div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">struct </span>Cmds</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> {</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">using</span> container = std::vector<std::unique_ptr<Cmd>>;</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">struct </span>CommandFormatError : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">explicit</span> Cmds() {}</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds.html"> 359</a></span>  </div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Rest></div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds.html">Cmds</a>(std::unique_ptr<Cmd>&& first, Rest&&... rest)</div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds_1_1CommandFormatError.html"> 362</a></span>  {</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  Unpack(std::forward<std::unique_ptr<Cmd>&&>(first), std::forward<Rest>(rest)...);</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordtype">void</span> Add(std::unique_ptr<Cmd>&& cmd) { fCmds.emplace_back(std::move(cmd)); }</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">template</span><<span class="keyword">typename</span> C, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">void</span> Add(Args&&... args)</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  static_assert(std::is_base_of<Cmd, C>::value, <span class="stringliteral">"Only types derived from fair::mq::cmd::Cmd are allowed"</span>);</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  Add(make<C>(std::forward<Args>(args)...));</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  Cmd& At(<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> *(fCmds.at(i)); }</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordtype">size_t</span> Size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fCmds.size(); }</div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> Reset() { fCmds.clear(); }</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  std::string Serialize(<span class="keyword">const</span> Format type = Format::Binary) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">void</span> Deserialize(<span class="keyword">const</span> std::string&, <span class="keyword">const</span> Format type = Format::Binary);</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  container fCmds;</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">void</span> Unpack() {}</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  </div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">template</span> <<span class="keyword">class</span>... Rest></div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordtype">void</span> Unpack(std::unique_ptr<Cmd>&& first, Rest&&... rest)</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  fCmds.emplace_back(std::move(first));</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  Unpack(std::forward<Rest>(rest)...);</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">using</span> iterator = container::iterator;</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">using</span> const_iterator = container::const_iterator;</div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">auto</span> begin() -> decltype(fCmds.begin()) { <span class="keywordflow">return</span> fCmds.begin(); }</div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">auto</span> end() -> decltype(fCmds.end()) { <span class="keywordflow">return</span> fCmds.end(); }</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">auto</span> cbegin() -> decltype(fCmds.cbegin()) { <span class="keywordflow">return</span> fCmds.cbegin(); }</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">auto</span> cend() -> decltype(fCmds.cend()) { <span class="keywordflow">return</span> fCmds.cend(); }</div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> };</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> std::string GetResultName(<span class="keyword">const</span> Result result);</div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> std::string GetTypeName(<span class="keyword">const</span> Type type);</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> Result& result) { <span class="keywordflow">return</span> os << GetResultName(result); }</div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> Type& type) { <span class="keywordflow">return</span> os << GetTypeName(type); }</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> } <span class="comment">// namespace fair::mq::sdk::cmd</span></div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_COMMANDFACTORY */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1ChangeState_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1ChangeState.html">fair::mq::sdk::cmd::ChangeState</a></div><div class="ttdef"><b>Definition:</b> Commands.h:78</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">fair::mq::sdk::cmd::Cmd</a></div><div class="ttdef"><b>Definition:</b> Commands.h:62</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1SubscribeToStateChange_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscribeToStateChange.html">fair::mq::sdk::cmd::SubscribeToStateChange</a></div><div class="ttdef"><b>Definition:</b> Commands.h:97</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties.html">fair::mq::sdk::cmd::GetProperties</a></div><div class="ttdef"><b>Definition:</b> Commands.h:121</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState.html">fair::mq::sdk::cmd::CheckState</a></div><div class="ttdef"><b>Definition:</b> Commands.h:73</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds.html">fair::mq::sdk::cmd::Cmds</a></div><div class="ttdef"><b>Definition:</b> Commands.h:360</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeExitingReceived_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeExitingReceived.html">fair::mq::sdk::cmd::StateChangeExitingReceived</a></div><div class="ttdef"><b>Definition:</b> Commands.h:116</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
405
v1.4.33/Common_8h_source.html
Normal file
@@ -0,0 +1,405 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/shmem/Common.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_6475741fe3587c0a949798307da6131d.html">shmem</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Common.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef FAIR_MQ_SHMEM_COMMON_H_</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define FAIR_MQ_SHMEM_COMMON_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <picosha2.h></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <sstream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <functional></span> <span class="comment">// std::equal_to</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <boost/functional/hash.hpp></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <boost/interprocess/allocators/allocator.hpp></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/interprocess/containers/map.hpp></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/interprocess/containers/string.hpp></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <boost/interprocess/containers/vector.hpp></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <boost/interprocess/indexes/null_index.hpp></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <boost/interprocess/managed_shared_memory.hpp></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <boost/interprocess/mem_algo/simple_seq_fit.hpp></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <boost/unordered_map.hpp></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <boost/variant.hpp></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <unistd.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <sys/types.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacefair_1_1mq_1_1shmem.html"> 32</a></span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SharedMemoryError.html">SharedMemoryError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">using</span> SimpleSeqFitSegment = boost::interprocess::basic_managed_shared_memory<char,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  boost::interprocess::simple_seq_fit<boost::interprocess::mutex_family>,</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  boost::interprocess::null_index>;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// boost::interprocess::iset_index>;</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SharedMemoryError.html"> 41</a></span> <span class="keyword">using</span> RBTreeBestFitSegment = boost::interprocess::basic_managed_shared_memory<char,</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family>,</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  boost::interprocess::null_index>;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// boost::interprocess::iset_index>;</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">using</span> SegmentManager = boost::interprocess::managed_shared_memory::segment_manager;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">using</span> VoidAlloc = boost::interprocess::allocator<void, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">using</span> CharAlloc = boost::interprocess::allocator<char, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">using</span> Str = boost::interprocess::basic_string<char, std::char_traits<char>, CharAlloc>;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">using</span> StrAlloc = boost::interprocess::allocator<Str, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">using</span> StrVector = boost::interprocess::vector<Str, StrAlloc>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">enum class</span> AllocationAlgorithm : int</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  rbtree_best_fit,</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  simple_seq_fit</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html">RegionInfo</a></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html">RegionInfo</a>(<span class="keyword">const</span> VoidAlloc& alloc)</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  : fPath(<span class="stringliteral">""</span>, alloc)</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  , fFlags(0)</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  , fUserFlags(0)</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html"> 65</a></span>  , fDestroyed(false)</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {}</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html">RegionInfo</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path, <span class="keyword">const</span> <span class="keywordtype">int</span> flags, <span class="keyword">const</span> uint64_t userFlags, <span class="keyword">const</span> VoidAlloc& alloc)</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  : fPath(path, alloc)</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  , fFlags(flags)</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  , fUserFlags(userFlags)</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  , fDestroyed(false)</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {}</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Str fPath;</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">int</span> fFlags;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  uint64_t fUserFlags;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordtype">bool</span> fDestroyed;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">using</span> Uint16RegionInfoPairAlloc = boost::interprocess::allocator<std::pair<const uint16_t, RegionInfo>, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">using</span> Uint16RegionInfoMap = boost::interprocess::map<uint16_t, RegionInfo, std::less<uint16_t>, Uint16RegionInfoPairAlloc>;</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">using</span> Uint16RegionInfoHashMap = boost::unordered_map<uint16_t, RegionInfo, boost::hash<uint16_t>, std::equal_to<uint16_t>, Uint16RegionInfoPairAlloc>;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>SegmentInfo</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  SegmentInfo(AllocationAlgorithm aa)</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  : fAllocationAlgorithm(aa)</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {}</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentInfo.html"> 91</a></span>  AllocationAlgorithm fAllocationAlgorithm;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> };</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">using</span> Uint16SegmentInfoPairAlloc = boost::interprocess::allocator<std::pair<const uint16_t, SegmentInfo>, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">using</span> Uint16SegmentInfoHashMap = boost::unordered_map<uint16_t, SegmentInfo, boost::hash<uint16_t>, std::equal_to<uint16_t>, Uint16SegmentInfoPairAlloc>;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// using Uint16SegmentInfoMap = boost::interprocess::map<uint16_t, SegmentInfo, std::less<uint16_t>, Uint16SegmentInfoPairAlloc>;</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">DeviceCounter</a></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">DeviceCounter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c)</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  : fCount(c)</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {}</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html"> 104</a></span>  std::atomic<unsigned int> fCount;</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> };</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">EventCounter</a></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">EventCounter</a>(uint64_t c)</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  : fCount(c)</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {}</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html"> 113</a></span>  std::atomic<uint64_t> fCount;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionCounter.html">RegionCounter</a></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionCounter.html">RegionCounter</a>(uint16_t c)</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  : fCount(c)</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {}</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1RegionCounter.html"> 122</a></span>  std::atomic<uint16_t> fCount;</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1MetaHeader.html">MetaHeader</a></div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">size_t</span> fSize;</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">size_t</span> fHint;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  uint16_t fRegionId;</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  uint16_t fSegmentId;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1MetaHeader.html"> 131</a></span>  boost::interprocess::managed_shared_memory::handle_t fHandle;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> };</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">struct </span>MsgCounter</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> {</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  MsgCounter()</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  : fCount(0)</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {}</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  MsgCounter(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c)</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  : fCount(c)</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {}</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  std::atomic<unsigned int> fCount;</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">using</span> Uint16MsgCounterPairAlloc = boost::interprocess::allocator<std::pair<const uint16_t, MsgCounter>, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">using</span> Uint16MsgCounterHashMap = boost::unordered_map<uint16_t, MsgCounter, boost::hash<uint16_t>, std::equal_to<uint16_t>, Uint16MsgCounterPairAlloc>;</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">struct </span>MsgDebug</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  MsgDebug()</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  : fPid(0)</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  , fSize(0)</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  , fCreationTime(0)</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {}</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  MsgDebug(pid_t pid, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> uint64_t creationTime)</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  : fPid(pid)</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  , fSize(size)</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  , fCreationTime(creationTime)</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {}</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  pid_t fPid;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">size_t</span> fSize;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  uint64_t fCreationTime;</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> };</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">using</span> SizetMsgDebugPairAlloc = boost::interprocess::allocator<std::pair<const size_t, MsgDebug>, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// using SizetMsgDebugHashMap = boost::unordered_map<size_t, MsgDebug, boost::hash<size_t>, std::equal_to<size_t>, SizetMsgDebugPairAlloc>;</span></div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">using</span> SizetMsgDebugMap = boost::interprocess::map<size_t, MsgDebug, std::less<size_t>, SizetMsgDebugPairAlloc>;</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">using</span> Uint16MsgDebugMapPairAlloc = boost::interprocess::allocator<std::pair<const uint16_t, SizetMsgDebugMap>, SegmentManager>;</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">using</span> Uint16MsgDebugMapHashMap = boost::unordered_map<uint16_t, SizetMsgDebugMap, boost::hash<uint16_t>, std::equal_to<uint16_t>, Uint16MsgDebugMapPairAlloc>;</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">struct </span>RegionBlock</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  RegionBlock()</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  : fHandle()</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  , fSize(0)</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  , fHint(0)</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1RegionBlock.html"> 183</a></span>  {}</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1RegionBlock.html">RegionBlock</a>(boost::interprocess::managed_shared_memory::handle_t handle, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> hint)</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  : fHandle(handle)</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  , fSize(size)</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  , fHint(hint)</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {}</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  boost::interprocess::managed_shared_memory::handle_t fHandle;</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">size_t</span> fSize;</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">size_t</span> fHint;</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// find id for unique shmem name:</span></div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// a hash of user id + session id, truncated to 8 characters (to accommodate for name size limit on some systems (MacOS)).</span></div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">inline</span> std::string makeShmIdStr(<span class="keyword">const</span> std::string& sessionId)</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  std::string seed((std::to_string(geteuid()) + sessionId));</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="comment">// generate a 8-digit hex value out of sha256 hash</span></div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::vector<unsigned char> hash(4);</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  picosha2::hash256(seed.begin(), seed.end(), hash.begin(), hash.end());</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> picosha2::bytes_to_hex_string(hash.begin(), hash.end());</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">inline</span> uint64_t makeShmIdUint64(<span class="keyword">const</span> std::string& sessionId)</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  std::string shmId = makeShmIdStr(sessionId);</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  uint64_t <span class="keywordtype">id</span> = 0;</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  ss << std::hex << shmId;</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  ss >> id;</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> id;</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">struct </span>SegmentSize : <span class="keyword">public</span> boost::static_visitor<size_t></div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> {</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">size_t</span> operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.get_size(); }</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> };</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentSize.html"> 225</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html">SegmentAddress</a> : <span class="keyword">public</span> boost::static_visitor<void*></div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordtype">void</span>* operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.get_address(); }</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> };</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html"> 231</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html">SegmentMemoryZeroer</a> : <span class="keyword">public</span> boost::static_visitor<></div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">void</span> operator()(S& s)<span class="keyword"> const </span>{ s.zero_free_memory(); }</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> };</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html"> 237</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html">SegmentFreeMemory</a> : <span class="keyword">public</span> boost::static_visitor<size_t></div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> {</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordtype">size_t</span> operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.get_free_memory(); }</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> };</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html"> 243</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress.html">SegmentHandleFromAddress</a> : <span class="keyword">public</span> boost::static_visitor<boost::interprocess::managed_shared_memory::handle_t></div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress.html">SegmentHandleFromAddress</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* _ptr) : ptr(_ptr) {}</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  boost::interprocess::managed_shared_memory::handle_t operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.get_handle_from_address(ptr); }</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress.html"> 249</a></span>  </div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">const</span> <span class="keywordtype">void</span>* ptr;</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> };</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle.html">SegmentAddressFromHandle</a> : <span class="keyword">public</span> boost::static_visitor<void*></div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> {</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle.html">SegmentAddressFromHandle</a>(<span class="keyword">const</span> boost::interprocess::managed_shared_memory::handle_t _handle) : handle(_handle) {}</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">void</span>* operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.get_address_from_handle(handle); }</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle.html"> 259</a></span>  </div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> boost::interprocess::managed_shared_memory::handle_t handle;</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> };</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocate.html">SegmentAllocate</a> : <span class="keyword">public</span> boost::static_visitor<void*></div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> {</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocate.html">SegmentAllocate</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> _size) : size(_size) {}</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordtype">void</span>* operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.allocate(size); }</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocate.html"> 269</a></span>  </div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> size;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> };</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned.html">SegmentAllocateAligned</a> : <span class="keyword">public</span> boost::static_visitor<void*></div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> {</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned.html">SegmentAllocateAligned</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> _size, <span class="keyword">const</span> <span class="keywordtype">size_t</span> _alignment) : size(_size), alignment(_alignment) {}</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  </div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordtype">void</span>* operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.allocate_aligned(size, alignment); }</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned.html"> 279</a></span>  </div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> size;</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> alignment;</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> };</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentBufferShrink.html">SegmentBufferShrink</a> : <span class="keyword">public</span> boost::static_visitor<char*></div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> {</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentBufferShrink.html">SegmentBufferShrink</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> _new_size, <span class="keywordtype">char</span>* _local_ptr)</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  : new_size(_new_size)</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  , local_ptr(_local_ptr)</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {}</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentBufferShrink.html"> 290</a></span>  </div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordtype">char</span>* operator()(S& s)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  boost::interprocess::managed_shared_memory::size_type shrunk_size = new_size;</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> s.template allocation_command<char>(boost::interprocess::shrink_in_place, new_size + 128, shrunk_size, local_ptr);</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> new_size;</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">mutable</span> <span class="keywordtype">char</span>* local_ptr;</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> };</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  </div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">struct </span>SegmentDeallocate : <span class="keyword">public</span> boost::static_visitor<></div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  SegmentDeallocate(<span class="keywordtype">void</span>* _ptr) : ptr(_ptr) {}</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">template</span><<span class="keyword">typename</span> S></div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">void</span> operator()(S& s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s.deallocate(ptr); }</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SegmentDeallocate.html"> 308</a></span>  </div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordtype">void</span>* ptr;</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> };</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> } <span class="comment">// namespace fair::mq::shmem</span></div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SHMEM_COMMON_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1DeviceCounter_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">fair::mq::shmem::DeviceCounter</a></div><div class="ttdef"><b>Definition:</b> Common.h:105</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1EventCounter_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">fair::mq::shmem::EventCounter</a></div><div class="ttdef"><b>Definition:</b> Common.h:114</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentAllocate_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentAllocate.html">fair::mq::shmem::SegmentAllocate</a></div><div class="ttdef"><b>Definition:</b> Common.h:270</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1RegionBlock_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1RegionBlock.html">fair::mq::shmem::RegionBlock</a></div><div class="ttdef"><b>Definition:</b> Common.h:184</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress.html">fair::mq::shmem::SegmentHandleFromAddress</a></div><div class="ttdef"><b>Definition:</b> Common.h:250</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html">fair::mq::shmem::SegmentMemoryZeroer</a></div><div class="ttdef"><b>Definition:</b> Common.h:238</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1RegionCounter_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1RegionCounter.html">fair::mq::shmem::RegionCounter</a></div><div class="ttdef"><b>Definition:</b> Common.h:123</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentFreeMemory_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html">fair::mq::shmem::SegmentFreeMemory</a></div><div class="ttdef"><b>Definition:</b> Common.h:244</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned.html">fair::mq::shmem::SegmentAllocateAligned</a></div><div class="ttdef"><b>Definition:</b> Common.h:280</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle.html">fair::mq::shmem::SegmentAddressFromHandle</a></div><div class="ttdef"><b>Definition:</b> Common.h:260</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1RegionInfo_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html">fair::mq::shmem::RegionInfo</a></div><div class="ttdef"><b>Definition:</b> Common.h:66</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentAddress_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html">fair::mq::shmem::SegmentAddress</a></div><div class="ttdef"><b>Definition:</b> Common.h:232</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1MetaHeader_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1MetaHeader.html">fair::mq::shmem::MetaHeader</a></div><div class="ttdef"><b>Definition:</b> Common.h:132</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SharedMemoryError_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SharedMemoryError.html">fair::mq::shmem::SharedMemoryError</a></div><div class="ttdef"><b>Definition:</b> Common.h:41</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_1_1shmem_html"><div class="ttname"><a href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div><div class="ttdef"><b>Definition:</b> Common.h:33</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentBufferShrink_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentBufferShrink.html">fair::mq::shmem::SegmentBufferShrink</a></div><div class="ttdef"><b>Definition:</b> Common.h:291</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
118
v1.4.33/Config_8h_source.html
Normal file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/config/Config.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li><li class="navelem"><a class="el" href="dir_03b58dd72b9fe3b82bb9fbfaef770022.html">config</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Config.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINS_CONFIG</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINS_CONFIG</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/Plugin.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/Version.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>fair::mq::plugins</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">class </span>Config : <span class="keyword">public</span> Plugin</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  Config(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> Plugin::Version version, <span class="keyword">const</span> std::string& maintainer, <span class="keyword">const</span> std::string& homepage, PluginServices* pluginServices);</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  ~Config();</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1plugins_1_1Config.html"> 26</a></span> };</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> Plugin::ProgOptions ConfigPluginProgramOptions();</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> REGISTER_FAIRMQ_PLUGIN(</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classfair_1_1mq_1_1plugins_1_1Config.html">Config</a>, <span class="comment">// Class name</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  config, <span class="comment">// Plugin name</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  (<a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Plugin::Version</a>{FAIRMQ_VERSION_MAJOR, FAIRMQ_VERSION_MINOR, FAIRMQ_VERSION_PATCH}),</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="stringliteral">"FairRootGroup <fairroot@gsi.de>"</span>,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="stringliteral">"https://github.com/FairRootGroup/FairRoot"</span>,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  ConfigPluginProgramOptions</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> )</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> } <span class="comment">// namespace fair::mq::plugins</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINS_CONFIG */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1plugins_1_1Config_html"><div class="ttname"><a href="classfair_1_1mq_1_1plugins_1_1Config.html">fair::mq::plugins::Config</a></div><div class="ttdef"><b>Definition:</b> Config.h:27</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
192
v1.4.33/ControlMessages_8h_source.html
Normal file
@@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/ofi/ControlMessages.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_5bbe8f428ccaffea9370922019c81a71.html">ofi</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ControlMessages.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_OFI_CONTROLMESSAGES_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_OFI_CONTROLMESSAGES_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <boost/asio/buffer.hpp></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <boost/container/pmr/memory_resource.hpp></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <type_traits></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span>boost::asio</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">template</span><<span class="keyword">typename</span> PodType></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">auto</span> buffer(<span class="keyword">const</span> PodType& obj) -> boost::asio::const_buffer</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keywordflow">return</span> boost::asio::const_buffer(<span class="keyword">static_cast<</span><span class="keyword">const </span><span class="keywordtype">void</span>*<span class="keyword">></span>(&obj), <span class="keyword">sizeof</span>(PodType));</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> }</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> } <span class="comment">// namespace boost::asio</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">namespace </span>fair::mq::ofi</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">enum class</span> ControlMessageType</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  Empty = 1,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  PostBuffer,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  PostMultiPartStartBuffer</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> };</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ofi_1_1Empty.html"> 41</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1ofi_1_1Empty.html">Empty</a></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {};</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html"> 44</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html">PostBuffer</a></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  uint64_t size; <span class="comment">// buffer size (size_t)</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer.html"> 49</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer.html">PostMultiPartStartBuffer</a></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  uint32_t numParts; <span class="comment">// buffer size (size_t)</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  uint64_t size; <span class="comment">// buffer size (size_t)</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="unionfair_1_1mq_1_1ofi_1_1ControlMessageContent.html"> 55</a></span> <span class="keyword">union </span><a class="code" href="unionfair_1_1mq_1_1ofi_1_1ControlMessageContent.html">ControlMessageContent</a></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html">PostBuffer</a> postBuffer;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="structfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer.html">PostMultiPartStartBuffer</a> postMultiPartStartBuffer;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html"> 61</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html">ControlMessage</a></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  ControlMessageType type;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="unionfair_1_1mq_1_1ofi_1_1ControlMessageContent.html">ControlMessageContent</a> msg;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> };</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">using</span> unique_ptr = std::unique_ptr<T, std::function<void(T*)>>;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">auto</span> MakeControlMessageWithPmr(boost::container::pmr::memory_resource& pmr, Args&&... args)</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  -> ofi::unique_ptr<ControlMessage></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">void</span>* mem = pmr.allocate(<span class="keyword">sizeof</span>(<a class="code" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html">ControlMessage</a>));</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html">ControlMessage</a>* ctrl = <span class="keyword">new</span> (mem) <a class="code" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html">ControlMessage</a>();</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (std::is_same<T, PostBuffer>::value) {</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  ctrl->type = ControlMessageType::PostBuffer;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  ctrl->msg.postBuffer = <a class="code" href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html">PostBuffer</a>(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::is_same<T, PostMultiPartStartBuffer>::value) {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  ctrl->type = ControlMessageType::PostMultiPartStartBuffer;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  ctrl->msg.postMultiPartStartBuffer = PostMultiPartStartBuffer(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::is_same<T, Empty>::value) {</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  ctrl->type = ControlMessageType::Empty;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> ofi::unique_ptr<ControlMessage>(ctrl, [&pmr](ControlMessage* p) {</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  p->~ControlMessage();</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  pmr.deallocate(p, <span class="keyword">sizeof</span>(T));</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  });</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">auto</span> MakeControlMessage(Args&&... args) -> ControlMessage</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> {</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  ControlMessage ctrl;</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (std::is_same<T, PostBuffer>::value) {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  ctrl.type = ControlMessageType::PostBuffer;</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::is_same<T, PostMultiPartStartBuffer>::value) {</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  ctrl.type = ControlMessageType::PostMultiPartStartBuffer;</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::is_same<T, Empty>::value) {</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  ctrl.type = ControlMessageType::Empty;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  ctrl.msg = T(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> ctrl;</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> } <span class="comment">// namespace fair::mq::ofi</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_OFI_CONTROLMESSAGES_H */</span><span class="preprocessor"> </span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1ofi_1_1ControlMessage_html"><div class="ttname"><a href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html">fair::mq::ofi::ControlMessage</a></div><div class="ttdef"><b>Definition:</b> ControlMessages.h:62</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1ofi_1_1Empty_html"><div class="ttname"><a href="structfair_1_1mq_1_1ofi_1_1Empty.html">fair::mq::ofi::Empty</a></div><div class="ttdef"><b>Definition:</b> ControlMessages.h:42</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer_html"><div class="ttname"><a href="structfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer.html">fair::mq::ofi::PostMultiPartStartBuffer</a></div><div class="ttdef"><b>Definition:</b> ControlMessages.h:50</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1ofi_1_1PostBuffer_html"><div class="ttname"><a href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html">fair::mq::ofi::PostBuffer</a></div><div class="ttdef"><b>Definition:</b> ControlMessages.h:45</div></div>
|
||||
<div class="ttc" id="aunionfair_1_1mq_1_1ofi_1_1ControlMessageContent_html"><div class="ttname"><a href="unionfair_1_1mq_1_1ofi_1_1ControlMessageContent.html">fair::mq::ofi::ControlMessageContent</a></div><div class="ttdef"><b>Definition:</b> ControlMessages.h:56</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
147
v1.4.33/Control_8h_source.html
Normal file
@@ -0,0 +1,147 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/Control.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Control.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINS_CONTROL</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINS_CONTROL</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/Plugin.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/Version.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/StateQueue.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <queue></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span>fair::mq::plugins</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>Control : <span class="keyword">public</span> Plugin</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  Control(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> Plugin::Version version, <span class="keyword">const</span> std::string& maintainer, <span class="keyword">const</span> std::string& homepage, PluginServices* pluginServices);</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  ~Control();</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1plugins_1_1Control.html"> 33</a></span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">auto</span> InteractiveMode() -> void;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">static</span> <span class="keyword">auto</span> PrintInteractiveHelpColor() -> void;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">static</span> <span class="keyword">auto</span> PrintInteractiveHelp() -> void;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">static</span> <span class="keyword">auto</span> PrintStateMachineColor() -> void;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">static</span> <span class="keyword">auto</span> PrintStateMachine() -> void;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">auto</span> StaticMode() -> void;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">auto</span> SignalHandler() -> void;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">auto</span> RunShutdownSequence() -> void;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">auto</span> RunStartupSequence() -> void;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  std::thread fControllerThread;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::thread fSignalHandlerThread;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  std::mutex fControllerMutex;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  std::atomic<bool> fDeviceShutdownRequested;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  std::atomic<bool> fDeviceHasShutdown;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  std::atomic<bool> fPluginShutdownRequested;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classfair_1_1mq_1_1StateQueue.html">fair::mq::StateQueue</a> fStateQueue;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }; <span class="comment">/* class Control */</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">auto</span> ControlPluginProgramOptions() -> Plugin::ProgOptions;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> REGISTER_FAIRMQ_PLUGIN(</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classfair_1_1mq_1_1plugins_1_1Control.html">Control</a>, <span class="comment">// Class name</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  control, <span class="comment">// Plugin name (string, lower case chars only)</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  (<a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Plugin::Version</a>{FAIRMQ_VERSION_MAJOR, FAIRMQ_VERSION_MINOR, FAIRMQ_VERSION_PATCH}), <span class="comment">// Version</span></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="stringliteral">"FairRootGroup <fairroot@gsi.de>"</span>, <span class="comment">// Maintainer</span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="stringliteral">"https://github.com/FairRootGroup/FairMQ"</span>, <span class="comment">// Homepage</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  ControlPluginProgramOptions <span class="comment">// Free function which declares custom program options for the</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// plugin signature: () -></span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// boost::optional<boost::program_options::options_description></span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> )</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> } <span class="comment">// namespace fair::mq::plugins</span></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINS_CONTROL */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1plugins_1_1Control_html"><div class="ttname"><a href="classfair_1_1mq_1_1plugins_1_1Control.html">fair::mq::plugins::Control</a></div><div class="ttdef"><b>Definition:</b> Control.h:34</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1StateQueue_html"><div class="ttname"><a href="classfair_1_1mq_1_1StateQueue.html">fair::mq::StateQueue</a></div><div class="ttdef"><b>Definition:</b> StateQueue.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
94
v1.4.33/CppSTL_8h_source.html
Normal file
@@ -0,0 +1,94 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/CppSTL.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">CppSTL.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_CPPSTL_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_CPPSTL_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_CPPSTL_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
151
v1.4.33/DDSAgent_8h_source.html
Normal file
@@ -0,0 +1,151 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSAgent.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSAgent.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSSAGENT_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSSAGENT_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/sdk/DDSSession.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>DDSAgent</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">using</span> Id = uint64_t;</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">using</span> Pid = uint32_t;</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSAgent.html"> 32</a></span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSAgent.html">DDSAgent</a>(<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a> session,</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  Id <span class="keywordtype">id</span>,</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  Pid pid,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  std::string path,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  std::string host,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  std::chrono::milliseconds startupTime,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  std::string username)</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  : fSession(std::move(session))</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  , fId(id)</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  , fPid(pid)</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  , fDDSPath(std::move(path))</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  , fHost(std::move(host))</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  , fStartupTime(startupTime)</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  , fUsername(std::move(username))</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {}</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a> GetSession()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSession; }</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  Id GetId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fId; }</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  Pid GetPid()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPid; }</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  std::string GetHost()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fHost; }</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  std::string GetDDSPath()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fDDSPath; }</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  std::chrono::milliseconds GetStartupTime()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fStartupTime; }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  std::string GetUsername()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fUsername; }</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> DDSAgent& agent) -> std::ostream&</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"DDSAgent id: "</span> << agent.fId</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  << <span class="stringliteral">", pid: "</span> << agent.fPid</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  << <span class="stringliteral">", path: "</span> << agent.fDDSPath</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  << <span class="stringliteral">", host: "</span> << agent.fHost</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  << <span class="stringliteral">", startupTime: "</span> << agent.fStartupTime.count()</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  << <span class="stringliteral">", username: "</span> << agent.fUsername;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  DDSSession fSession;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  Id fId;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  Pid fPid;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  std::string fDDSPath;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::string fHost;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::chrono::milliseconds fStartupTime;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::string fUsername;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSSAGENT_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSSession_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">fair::mq::sdk::DDSSession</a></div><div class="ttdoc">Represents a DDS session.</div><div class="ttdef"><b>Definition:</b> DDSSession.h:62</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSAgent_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSAgent.html">fair::mq::sdk::DDSAgent</a></div><div class="ttdoc">Represents a DDS agent.</div><div class="ttdef"><b>Definition:</b> DDSAgent.h:33</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
117
v1.4.33/DDSCollection_8h_source.html
Normal file
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSCollection.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSCollection.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSCOLLECTION_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSCOLLECTION_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// #include <fairmq/sdk/DDSAgent.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">class </span>DDSCollection</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">using</span> Id = std::uint64_t;</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">explicit</span> DDSCollection(Id <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSCollection.html"> 30</a></span>  : fId(id)</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  {}</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  Id GetId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fId; }</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> DDSCollection& collection) -> std::ostream&</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"DDSCollection id: "</span> << collection.fId;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  }</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  Id fId;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> };</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSCOLLECTION_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
117
v1.4.33/DDSEnvironment_8h_source.html
Normal file
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSEnvironment.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSEnvironment.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSENVIRONMENT_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSENVIRONMENT_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">class </span>DDSEnvironment</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">using</span> Path = boost::filesystem::path;</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  DDSEnvironment();</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html"> 29</a></span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>(Path);</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">auto</span> GetLocation() const -> Path;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  auto GetConfigHome() const -> Path;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  friend auto operator<<(std::ostream& os, <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a> env) -> std::ostream&;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  private:</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  struct <a class="code" href="structfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl.html">Impl</a>;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  std::shared_ptr<<a class="code" href="structfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl.html">Impl</a>> fImpl;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> };</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> using <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnv</a> = <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSENVIRONMENT_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSEnvironment_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">fair::mq::sdk::DDSEnvironment</a></div><div class="ttdoc">Sets up the DDS environment (object helper)</div><div class="ttdef"><b>Definition:</b> DDSEnvironment.h:30</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl.html">fair::mq::sdk::DDSEnvironment::Impl</a></div><div class="ttdef"><b>Definition:</b> DDSEnvironment.cxx:29</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
187
v1.4.33/DDSSession_8h_source.html
Normal file
@@ -0,0 +1,187 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSSession.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSSession.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSSESSION_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSSESSION_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/sdk/DDSEnvironment.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/sdk/DDSInfo.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/sdk/DDSTask.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <istream></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">enum class</span> DDSRMSPlugin</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  localhost,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  ssh</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> };</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">auto</span> operator<<(std::ostream& os, DDSRMSPlugin plugin) -> std::ostream&;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">auto</span> operator>>(std::istream& is, DDSRMSPlugin& plugin) -> std::istream&;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>DDSTopology;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span>DDSAgent;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>DDSChannel</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">using</span> Id = std::uint64_t;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> };</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">class </span>DDSSession</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">using</span> Id = std::string;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">using</span> Quantity = std::uint32_t;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">using</span> Path = boost::filesystem::path;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html"> 61</a></span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a>(<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a> env = <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>());</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a>(Id existing, <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a> env = <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>());</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a>(std::shared_ptr<dds::tools_api::CSession> nativeSession, <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnv</a> env = {});</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">auto</span> GetEnv() const -> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  auto GetId() const -> Id;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  auto GetRMSPlugin() const -> DDSRMSPlugin;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  auto SetRMSPlugin(DDSRMSPlugin) -> <span class="keywordtype">void</span>;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  auto GetRMSConfig() const -> Path;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  auto SetRMSConfig(Path) const -> <span class="keywordtype">void</span>;</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  auto IsStoppedOnDestruction() const -> <span class="keywordtype">bool</span>;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  auto StopOnDestruction(<span class="keywordtype">bool</span> stop = true) -> <span class="keywordtype">void</span>;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  auto IsRunning() const -> <span class="keywordtype">bool</span>;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  auto SubmitAgents(Quantity agents) -> <span class="keywordtype">void</span>;</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  struct AgentCount {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  Quantity idle = 0;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  Quantity active = 0;</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  Quantity executing = 0;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  };</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">auto</span> RequestAgentCount() -> AgentCount;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1AgentCount.html"> 86</a></span>  <span class="keyword">auto</span> RequestAgentInfo() -> std::vector<DDSAgent>;</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">auto</span> RequestTaskInfo() -> std::vector<DDSTask>;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo.html">CommanderInfo</a> {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">int</span> pid = -1;</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::string activeTopologyName;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  };</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">auto</span> RequestCommanderInfo() -> <a class="code" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo.html">CommanderInfo</a>;</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">auto</span> WaitForIdleAgents(Quantity) -> void;</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo.html"> 94</a></span>  <span class="keyword">auto</span> WaitForOnlyIdleAgents() -> void;</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">auto</span> WaitForExecutingAgents(Quantity) -> void;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">auto</span> ActivateTopology(<span class="keyword">const</span> Path& topoFile) -> void;</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">auto</span> ActivateTopology(<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopology</a>) -> void;</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">auto</span> Stop() -> void;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">void</span> StartDDSService();</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">void</span> SubscribeToCommands(std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& msg, <span class="keyword">const</span> std::string& condition, uint64_t senderId)>);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">void</span> UnsubscribeFromCommands();</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">void</span> SendCommand(<span class="keyword">const</span> std::string&, <span class="keyword">const</span> std::string& = <span class="stringliteral">""</span>);</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">void</span> SendCommand(<span class="keyword">const</span> std::string&, DDSChannel::Id);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">auto</span> GetTaskId(DDSChannel::Id) <span class="keyword">const</span> -> DDSTask::Id;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a>& session) -> std::ostream&;</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1Impl.html">Impl</a>;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  std::shared_ptr<Impl> fImpl;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">auto</span> getMostRecentRunningDDSSession(<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnv</a> env = {}) -> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">DDSSession</a>;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSSESSION_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSEnvironment_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">fair::mq::sdk::DDSEnvironment</a></div><div class="ttdoc">Sets up the DDS environment (object helper)</div><div class="ttdef"><b>Definition:</b> DDSEnvironment.h:30</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSSession_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSSession.html">fair::mq::sdk::DDSSession</a></div><div class="ttdoc">Represents a DDS session.</div><div class="ttdef"><b>Definition:</b> DDSSession.h:62</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1DDSSession_1_1Impl_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1Impl.html">fair::mq::sdk::DDSSession::Impl</a></div><div class="ttdef"><b>Definition:</b> DDSSession.cxx:65</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo.html">fair::mq::sdk::DDSSession::CommanderInfo</a></div><div class="ttdef"><b>Definition:</b> DDSSession.h:94</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">fair::mq::sdk::DDSTopology</a></div><div class="ttdoc">Represents a DDS topology.</div><div class="ttdef"><b>Definition:</b> DDSTopology.h:35</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
120
v1.4.33/DDSTask_8h_source.html
Normal file
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSTask.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSTask.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSTASK_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSTASK_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/sdk/DDSCollection.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">class </span>DDSTask</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">using</span> Id = std::uint64_t;</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">explicit</span> DDSTask(Id <span class="keywordtype">id</span>, Id collectionId)</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSTask.html"> 30</a></span>  : fId(id)</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  , fCollectionId(collectionId)</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  {}</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  Id GetId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fId; }</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  DDSCollection::Id GetCollectionId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fCollectionId; }</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> DDSTask& task) -> std::ostream&</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  {</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"DDSTask id: "</span> << task.fId << <span class="stringliteral">", collection id: "</span> << task.fCollectionId;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  Id fId;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  DDSCollection::Id fCollectionId;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> };</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSTASK_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
143
v1.4.33/DDSTopology_8h_source.html
Normal file
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/DDSTopology.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDSTopology.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_DDSTOPOLOGY_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_DDSTOPOLOGY_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/sdk/DDSCollection.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/sdk/DDSEnvironment.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/sdk/DDSInfo.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/sdk/DDSTask.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span>fair::mq::sdk</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>DDSTopology</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">using</span> Path = boost::filesystem::path;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  DDSTopology() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html"> 34</a></span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopology</a>(Path topoFile, <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a> env = <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>());</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopology</a>(dds::topology_api::CTopology nativeTopology, <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnv</a> env = {});</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a8b3da42b8fff365b3a492c916f9c2867">GetEnv</a>() const -> <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">DDSEnvironment</a>;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  auto <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#ad5c5394346bd4dd722980879146b092e">GetTopoFile</a>() const -> Path;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  auto <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#ab7151111693b76058267c7d084276f86">GetNumRequiredAgents</a>() const -> <span class="keywordtype">int</span>;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  auto <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a8fa1e51a0238c14f1a0fe1fccaa03f56">GetTasks</a>(const std::<span class="keywordtype">string</span>& = "") const -> std::vector<<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTask.html">DDSTask</a>>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  auto <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#add430aa66db65299ab95fc4da18fdee4">GetCollections</a>() const -> std::vector<<a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSCollection.html">DDSCollection</a>>;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  auto <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a0e475b519c2283b1c9326906d8d10906">GetName</a>() const -> std::<span class="keywordtype">string</span>;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  friend auto operator<<(std::ostream&, const <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopology</a>&) -> std::ostream&;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  private:</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  struct Impl;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  std::shared_ptr<Impl> fImpl;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> using <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopo</a> = <a class="code" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">DDSTopology</a>;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> } <span class="comment">// namespace fair::mq::sdk</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_DDSTOPOLOGY_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_a0e475b519c2283b1c9326906d8d10906"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a0e475b519c2283b1c9326906d8d10906">fair::mq::sdk::DDSTopology::GetName</a></div><div class="ttdeci">auto GetName() const -> std::string</div><div class="ttdoc">Get the name of the topology.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:111</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_ad5c5394346bd4dd722980879146b092e"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#ad5c5394346bd4dd722980879146b092e">fair::mq::sdk::DDSTopology::GetTopoFile</a></div><div class="ttdeci">auto GetTopoFile() const -> Path</div><div class="ttdoc">Get path to DDS topology xml, if it is known.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:57</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSEnvironment_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html">fair::mq::sdk::DDSEnvironment</a></div><div class="ttdoc">Sets up the DDS environment (object helper)</div><div class="ttdef"><b>Definition:</b> DDSEnvironment.h:30</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_a8b3da42b8fff365b3a492c916f9c2867"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a8b3da42b8fff365b3a492c916f9c2867">fair::mq::sdk::DDSTopology::GetEnv</a></div><div class="ttdeci">auto GetEnv() const -> DDSEnvironment</div><div class="ttdoc">Get associated DDS environment.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:55</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_add430aa66db65299ab95fc4da18fdee4"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#add430aa66db65299ab95fc4da18fdee4">fair::mq::sdk::DDSTopology::GetCollections</a></div><div class="ttdeci">auto GetCollections() const -> std::vector< DDSCollection ></div><div class="ttdoc">Get list of tasks in this topology.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:94</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSCollection_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSCollection.html">fair::mq::sdk::DDSCollection</a></div><div class="ttdoc">Represents a DDS collection.</div><div class="ttdef"><b>Definition:</b> DDSCollection.h:31</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTask_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTask.html">fair::mq::sdk::DDSTask</a></div><div class="ttdoc">Represents a DDS task.</div><div class="ttdef"><b>Definition:</b> DDSTask.h:31</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_ab7151111693b76058267c7d084276f86"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#ab7151111693b76058267c7d084276f86">fair::mq::sdk::DDSTopology::GetNumRequiredAgents</a></div><div class="ttdeci">auto GetNumRequiredAgents() const -> int</div><div class="ttdoc">Get number of required agents for this topology.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:66</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html_a8fa1e51a0238c14f1a0fe1fccaa03f56"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html#a8fa1e51a0238c14f1a0fe1fccaa03f56">fair::mq::sdk::DDSTopology::GetTasks</a></div><div class="ttdeci">auto GetTasks(const std::string &="") const -> std::vector< DDSTask ></div><div class="ttdoc">Get list of tasks in this topology, optionally matching provided path.</div><div class="ttdef"><b>Definition:</b> DDSTopology.cxx:71</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1sdk_1_1DDSTopology_html"><div class="ttname"><a href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html">fair::mq::sdk::DDSTopology</a></div><div class="ttdoc">Represents a DDS topology.</div><div class="ttdef"><b>Definition:</b> DDSTopology.h:35</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
278
v1.4.33/DDS_8h_source.html
Normal file
@@ -0,0 +1,278 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/DDS/DDS.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li><li class="navelem"><a class="el" href="dir_971de67a0ea47ad3d0f84ca5c47a4a50.html">DDS</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DDS.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINS_DDS</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINS_DDS</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/Plugin.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/StateQueue.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/Version.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/sdk/commands/Commands.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <dds/dds.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <boost/asio/executor.hpp></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/asio/executor_work_guard.hpp></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/asio/io_context.hpp></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <cassert></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span>fair::mq::plugins</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>DDSConfig</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// container of sub channel addresses</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fNumSubChannels;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// dds values for the channel</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  std::map<uint64_t, std::string> fDDSValues;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1plugins_1_1DDSConfig.html"> 44</a></span> };</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html">DDSSubscription</a></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html">DDSSubscription</a>()</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  : fDDSCustomCmd(fService)</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  , fDDSKeyValue(fService)</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html"> 52</a></span>  LOG(debug) << <span class="stringliteral">"$DDS_TASK_PATH: "</span> << dds::env_prop<dds::task_path>();</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  LOG(debug) << <span class="stringliteral">"$DDS_GROUP_NAME: "</span> << dds::env_prop<dds::group_name>();</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  LOG(debug) << <span class="stringliteral">"$DDS_COLLECTION_NAME: "</span> << dds::env_prop<dds::collection_name>();</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  LOG(debug) << <span class="stringliteral">"$DDS_TASK_NAME: "</span> << dds::env_prop<dds::task_name>();</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  LOG(debug) << <span class="stringliteral">"$DDS_TASK_INDEX: "</span> << dds::env_prop<dds::task_index>();</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  LOG(debug) << <span class="stringliteral">"$DDS_COLLECTION_INDEX: "</span> << dds::env_prop<dds::collection_index>();</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  LOG(debug) << <span class="stringliteral">"$DDS_TASK_ID: "</span> << dds::env_prop<dds::task_id>();</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  LOG(debug) << <span class="stringliteral">"$DDS_LOCATION: "</span> << dds::env_prop<dds::dds_location>();</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::string dds_session_id(dds::env_prop<dds::dds_session_id>());</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  LOG(debug) << <span class="stringliteral">"$DDS_SESSION_ID: "</span> << dds_session_id;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// subscribe for DDS service errors.</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  fService.subscribeOnError([](<span class="keyword">const</span> dds::intercom_api::EErrorCode errorCode, <span class="keyword">const</span> std::string& errorMsg) {</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  LOG(error) << <span class="stringliteral">"DDS Error received: error code: "</span> << errorCode << <span class="stringliteral">", error message: "</span> << errorMsg;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  });</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// fDDSCustomCmd.subscribe([](const std::string& cmd, const std::string& cond, uint64_t senderId) {</span></div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// LOG(debug) << "cmd: " << cmd << ", cond: " << cond << ", senderId: " << senderId;</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// });</span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  assert(!dds_session_id.empty());</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">auto</span> Start() -> <span class="keywordtype">void</span> {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  fService.start(dds::env_prop<dds::dds_session_id>());</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  ~DDSSubscription() {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  fDDSKeyValue.unsubscribe();</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  fDDSCustomCmd.unsubscribe();</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">auto</span> SubscribeCustomCmd(Args&&... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  fDDSCustomCmd.subscribe(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">auto</span> SubscribeKeyValue(Args&&... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  fDDSKeyValue.subscribe(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">auto</span> Send(Args&&... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  fDDSCustomCmd.send(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">auto</span> PutValue(Args&&... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  fDDSKeyValue.putValue(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  dds::intercom_api::CIntercomService fService;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  dds::intercom_api::CCustomCmd fDDSCustomCmd;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  dds::intercom_api::CKeyValue fDDSKeyValue;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> };</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>IofN</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  IofN(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> n)</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  : fI(i)</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  , fN(n)</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {}</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1plugins_1_1IofN.html"> 119</a></span>  </div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fI;</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fN;</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  std::vector<std::string> fEntries;</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">class </span><a class="code" href="classfair_1_1mq_1_1plugins_1_1DDS.html">DDS</a> : <span class="keyword">public</span> <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a></div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classfair_1_1mq_1_1plugins_1_1DDS.html">DDS</a>(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Plugin::Version</a> version, <span class="keyword">const</span> std::string& maintainer, <span class="keyword">const</span> std::string& homepage, <a class="code" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>* pluginServices);</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  ~<a class="code" href="classfair_1_1mq_1_1plugins_1_1DDS.html">DDS</a>();</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1plugins_1_1DDS.html"> 131</a></span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">auto</span> WaitForExitingAck() -> void;</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">auto</span> StartWorkerThread() -> void;</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">auto</span> FillChannelContainers() -> void;</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">auto</span> EmptyChannelContainers() -> void;</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">auto</span> SubscribeForConnectingChannels() -> void;</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">auto</span> PublishBoundChannels() -> void;</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">auto</span> SubscribeForCustomCommands() -> void;</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">auto</span> HandleCmd(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <a class="code" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">sdk::cmd::Cmd</a>& cmd, <span class="keyword">const</span> std::string& cond, uint64_t senderId) -> void;</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html">DDSSubscription</a> fDDS;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">size_t</span> fDDSTaskId;</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::unordered_map<std::string, std::vector<std::string>> fBindingChans;</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  std::unordered_map<std::string, DDSConfig> fConnectingChans;</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  std::unordered_map<std::string, int> fI;</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  std::unordered_map<std::string, IofN> fIofN;</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  std::thread fControllerThread;</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  DeviceState fCurrentState, fLastState;</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  std::atomic<bool> fDeviceTerminationRequested;</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  std::unordered_map<uint64_t, std::pair<std::chrono::steady_clock::time_point, int64_t>> fStateChangeSubscribers;</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  uint64_t fLastExternalController;</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">bool</span> fExitingAckedByLastExternalController;</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  std::condition_variable fExitingAcked;</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  std::mutex fStateChangeSubscriberMutex;</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">bool</span> fUpdatesAllowed;</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  std::mutex fUpdateMutex;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  std::condition_variable fUpdateCondition;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  std::thread fWorkerThread;</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  boost::asio::io_context fWorkerQueue;</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  boost::asio::executor_work_guard<boost::asio::executor> fWorkGuard;</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> };</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> Plugin::ProgOptions DDSProgramOptions()</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> {</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  boost::program_options::options_description options{<span class="stringliteral">"DDS Plugin"</span>};</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  options.add_options()</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  (<span class="stringliteral">"dds-i"</span>, boost::program_options::value<std::vector<std::string>>()->multitoken()->composing(), <span class="stringliteral">"Task index for chosing connection target (single channel n to m). When all values come via same update."</span>)</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  (<span class="stringliteral">"dds-i-n"</span>, boost::program_options::value<std::vector<std::string>>()->multitoken()->composing(), <span class="stringliteral">"Task index for chosing connection target (one out of n values to take). When values come as independent updates."</span>)</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  (<span class="stringliteral">"wait-for-exiting-ack-timeout"</span>, boost::program_options::value<unsigned int>()->default_value(1000), <span class="stringliteral">"Wait timeout for EXITING state-change acknowledgement by external controller in milliseconds."</span>);</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> options;</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> REGISTER_FAIRMQ_PLUGIN(</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  DDS, <span class="comment">// Class name</span></div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  dds, <span class="comment">// Plugin name (string, lower case chars only)</span></div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  (Plugin::Version{FAIRMQ_VERSION_MAJOR,</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  FAIRMQ_VERSION_MINOR,</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  FAIRMQ_VERSION_PATCH}), <span class="comment">// Version</span></div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="stringliteral">"FairRootGroup <fairroot@gsi.de>"</span>, <span class="comment">// Maintainer</span></div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="stringliteral">"https://github.com/FairRootGroup/FairMQ"</span>, <span class="comment">// Homepage</span></div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  DDSProgramOptions <span class="comment">// custom program options for the plugin</span></div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> )</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> } <span class="comment">// namespace fair::mq::plugins</span></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINS_DDS */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html">fair::mq::PluginServices</a></div><div class="ttdoc">Facilitates communication between devices and plugins.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:46</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd_html"><div class="ttname"><a href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html">fair::mq::sdk::cmd::Cmd</a></div><div class="ttdef"><b>Definition:</b> Commands.h:62</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1plugins_1_1DDS_html"><div class="ttname"><a href="classfair_1_1mq_1_1plugins_1_1DDS.html">fair::mq::plugins::DDS</a></div><div class="ttdef"><b>Definition:</b> DDS.h:132</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1plugins_1_1DDSSubscription_html"><div class="ttname"><a href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html">fair::mq::plugins::DDSSubscription</a></div><div class="ttdef"><b>Definition:</b> DDS.h:53</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1Plugin_html"><div class="ttname"><a href="classfair_1_1mq_1_1Plugin.html">fair::mq::Plugin</a></div><div class="ttdoc">Base class for FairMQ plugins.</div><div class="ttdef"><b>Definition:</b> Plugin.h:43</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
146
v1.4.33/DeviceRunner_8h_source.html
Normal file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/DeviceRunner.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">DeviceRunner.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_DEVICERUNNER_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_DEVICERUNNER_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/EventManager.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/PluginManager.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/ProgOptions.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <FairMQDevice.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespacefair_1_1mq.html"> 22</a></span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">class </span><a class="code" href="classfair_1_1mq_1_1DeviceRunner.html">DeviceRunner</a></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classfair_1_1mq_1_1DeviceRunner.html">DeviceRunner</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>*<span class="keyword">const</span>* argv, <span class="keywordtype">bool</span> printLogo = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">auto</span> Run() -> int;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1DeviceRunner.html"> 56</a></span>  <span class="keyword">auto</span> RunWithExceptionHandlers() -> int;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> HandleGeneralOptions(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>& config, <span class="keywordtype">bool</span> printLogo = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">void</span> SubscribeForConfigChange();</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">void</span> UnsubscribeFromConfigChange();</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">template</span><<span class="keyword">typename</span> H></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">auto</span> AddHook(std::function<<span class="keywordtype">void</span>(<a class="code" href="classfair_1_1mq_1_1DeviceRunner.html">DeviceRunner</a>&)> hook) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  fEvents.Subscribe<H>(<span class="stringliteral">"runner"</span>, hook);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">template</span><<span class="keyword">typename</span> H></div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">auto</span> RemoveHook() -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  fEvents.Unsubscribe<H>(<span class="stringliteral">"runner"</span>);</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  std::vector<std::string> fRawCmdLineArgs;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> fConfig;</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  std::unique_ptr<FairMQDevice> fDevice;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  PluginManager fPluginManager;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> fPrintLogo;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  EventManager fEvents;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">namespace </span>hooks {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>LoadPlugins : Event<DeviceRunner&> {};</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">struct </span>SetCustomCmdLineOptions : Event<DeviceRunner&> {};</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">struct </span>ModifyRawCmdLineArgs : Event<DeviceRunner&> {};</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">struct </span>InstantiateDevice : Event<DeviceRunner&> {};</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> } <span class="comment">/* namespace hooks */</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1hooks_1_1LoadPlugins.html"> 91</a></span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1hooks_1_1SetCustomCmdLineOptions.html"> 92</a></span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1hooks_1_1ModifyRawCmdLineArgs.html"> 93</a></span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_DEVICERUNNER_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1DeviceRunner_html"><div class="ttname"><a href="classfair_1_1mq_1_1DeviceRunner.html">fair::mq::DeviceRunner</a></div><div class="ttdoc">Utility class to facilitate a convenient top-level device launch/shutdown.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:57</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
138
v1.4.33/Error_8h_source.html
Normal file
@@ -0,0 +1,138 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/Error.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Error.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_ERROR_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_ERROR_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <system_error></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>sdk</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">struct </span>RuntimeError : ::std::runtime_error</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... T></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">explicit</span> RuntimeError(T&&... t)</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  : ::std::runtime_error::runtime_error(tools::ToString(std::forward<T>(t)...))</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  {}</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> };</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> } <span class="comment">/* namespace sdk */</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">enum class</span> ErrorCode</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1sdk_1_1RuntimeError.html"> 34</a></span>  OperationInProgress = 10,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  OperationTimeout,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  OperationCanceled,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  DeviceChangeStateFailed,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  DeviceGetPropertiesFailed,</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  DeviceSetPropertiesFailed</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> };</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> std::error_code MakeErrorCode(ErrorCode);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1ErrorCategory.html">ErrorCategory</a> : std::error_category</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* name() const noexcept override;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  std::<span class="keywordtype">string</span> message(<span class="keywordtype">int</span> ev) const override;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ErrorCategory.html"> 50</a></span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> namespace std</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span><></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structstd_1_1is__error__code__enum_3_01fair_1_1mq_1_1ErrorCode_01_4.html"> 56</a></span> <span class="keyword">struct </span>is_error_code_enum<fair::mq::ErrorCode> : true_type</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {};</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> } <span class="comment">// namespace std</span></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_ERROR_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1ErrorCategory_html"><div class="ttname"><a href="structfair_1_1mq_1_1ErrorCategory.html">fair::mq::ErrorCategory</a></div><div class="ttdef"><b>Definition:</b> Error.h:51</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
201
v1.4.33/EventManager_8h_source.html
Normal file
@@ -0,0 +1,201 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/EventManager.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">EventManager.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_EVENTMANAGER_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_EVENTMANAGER_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <typeindex></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/any.hpp></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/functional/hash.hpp></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <boost/signals2.hpp></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Inherit from this base event type to create custom event types</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span><<span class="keyword">typename</span> K></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">struct </span>Event</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">using</span> KeyType = K;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> };</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">class </span>EventManager</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Clang 3.4-3.8 has a bug and cannot properly deal with the following template alias.</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Therefore, we leave them here commented out for now.</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// template<typename E, typename ...Args></span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1EventManager.html"> 55</a></span>  <span class="comment">// using Callback = std::function<void(typename E::KeyType, Args...)>;</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">template</span><<span class="keyword">typename</span> E, <span class="keyword">typename</span> ...Args></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">using</span> Signal = boost::signals2::signal<void(<span class="keyword">typename</span> E::KeyType, Args...)>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span><<span class="keyword">typename</span> E, <span class="keyword">typename</span> ...Args></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">auto</span> Subscribe(<span class="keyword">const</span> std::string& subscriber, std::function<<span class="keywordtype">void</span>(<span class="keyword">typename</span> E::KeyType, Args...)> callback) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> std::type_index event_type_index{<span class="keyword">typeid</span>(E)};</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> std::type_index callback_type_index{<span class="keyword">typeid</span>(std::function<void(<span class="keyword">typename</span> E::KeyType, Args...)>)};</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <span class="keyword">auto</span> signalsKey = std::make_pair(event_type_index, callback_type_index);</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <span class="keyword">auto</span> connectionsKey = std::make_pair(subscriber, signalsKey);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <span class="keyword">auto</span> connection = GetSignal<E, Args...>(signalsKey)->connect(callback);</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::lock_guard<std::mutex> lock{fMutex};</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (fConnections.find(connectionsKey) != fConnections.end())</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  fConnections.at(connectionsKey).disconnect();</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  fConnections.erase(connectionsKey);</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  fConnections.insert({connectionsKey, connection});</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">template</span><<span class="keyword">typename</span> E, <span class="keyword">typename</span> ...Args></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">auto</span> Unsubscribe(<span class="keyword">const</span> std::string& subscriber) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> std::type_index event_type_index{<span class="keyword">typeid</span>(E)};</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> std::type_index callback_type_index{<span class="keyword">typeid</span>(std::function<void(<span class="keyword">typename</span> E::KeyType, Args...)>)};</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">const</span> <span class="keyword">auto</span> signalsKey = std::make_pair(event_type_index, callback_type_index);</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">const</span> <span class="keyword">auto</span> connectionsKey = std::make_pair(subscriber, signalsKey);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::lock_guard<std::mutex> lock{fMutex};</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  fConnections.at(connectionsKey).disconnect();</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  fConnections.erase(connectionsKey);</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">template</span><<span class="keyword">typename</span> E, <span class="keyword">typename</span> ...Args></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">auto</span> Emit(<span class="keyword">typename</span> E::KeyType key, Args... args) <span class="keyword">const</span> -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keyword">const</span> std::type_index event_type_index{<span class="keyword">typeid</span>(E)};</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> std::type_index callback_type_index{<span class="keyword">typeid</span>(std::function<void(<span class="keyword">typename</span> E::KeyType, Args...)>)};</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <span class="keyword">auto</span> signalsKey = std::make_pair(event_type_index, callback_type_index);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  (*GetSignal<E, Args...>(signalsKey))(key, std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">using</span> SignalsKey = std::pair<std::type_index, std::type_index>;</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// event , callback</span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">using</span> SignalsValue = boost::any;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">using</span> SignalsMap = std::unordered_map<SignalsKey, SignalsValue, boost::hash<SignalsKey>>;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">mutable</span> SignalsMap fSignals;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">using</span> ConnectionsKey = std::pair<std::string, SignalsKey>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// subscriber , event/callback</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">using</span> ConnectionsValue = boost::signals2::connection;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">using</span> ConnectionsMap = std::unordered_map<ConnectionsKey, ConnectionsValue, boost::hash<ConnectionsKey>>;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  ConnectionsMap fConnections;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">mutable</span> std::mutex fMutex;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">template</span><<span class="keyword">typename</span> E, <span class="keyword">typename</span> ...Args></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">auto</span> GetSignal(<span class="keyword">const</span> SignalsKey& key) <span class="keyword">const</span> -> std::shared_ptr<Signal<E, Args...>></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  std::lock_guard<std::mutex> lock{fMutex};</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (fSignals.find(key) == fSignals.end())</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// wrapper is needed because boost::signals2::signal is neither copyable nor movable</span></div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// and I don't know how else to insert it into the map</span></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">auto</span> signal = std::make_shared<Signal<E, Args...>>();</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  fSignals.insert(std::make_pair(key, signal));</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> boost::any_cast<std::shared_ptr<Signal<E, Args...>>>(fSignals.at(key));</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }; <span class="comment">/* class EventManager */</span></div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_EVENTMANAGER_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
206
v1.4.33/FairMQBenchmarkSampler_8h_source.html
Normal file
@@ -0,0 +1,206 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQBenchmarkSampler.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQBenchmarkSampler.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQBENCHMARKSAMPLER_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQBENCHMARKSAMPLER_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "../FairMQLogger.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "tools/RateLimit.h"</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cstddef></span> <span class="comment">// size_t</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <cstdint></span> <span class="comment">// uint64_t</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <cstring></span> <span class="comment">// memset</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classFairMQBenchmarkSampler.html"> 26</a></span> <span class="keyword">class </span><a class="code" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>()</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  : fMultipart(<span class="keyword">false</span>)</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  , fMemSet(<span class="keyword">false</span>)</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  , fNumParts(1)</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  , fMsgSize(10000)</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  , fMsgAlignment(0)</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  , fMsgRate(0)</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  , fNumIterations(0)</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  , fMaxIterations(0)</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  , fOutChannelName()</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {}</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQBenchmarkSampler.html#aa515049fe636820d5bdb2032d5e3978c">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  fMemSet = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"memset"</span>);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  fNumParts = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">size_t</span>>(<span class="stringliteral">"num-parts"</span>);</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  fMsgSize = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">size_t</span>>(<span class="stringliteral">"msg-size"</span>);</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classFairMQBenchmarkSampler.html#aa515049fe636820d5bdb2032d5e3978c"> 47</a></span>  fMsgAlignment = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">size_t</span>>(<span class="stringliteral">"msg-alignment"</span>);</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  fMsgRate = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">float</span>>(<span class="stringliteral">"msg-rate"</span>);</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  fMaxIterations = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><uint64_t>(<span class="stringliteral">"max-iterations"</span>);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  fOutChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"out-channel"</span>);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQBenchmarkSampler.html#ae016fde6952dcd0ed671b4a6c51cb835">Run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// store the channel reference to avoid traversing the map on every loop iteration</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classFairMQChannel.html">FairMQChannel</a>& dataOutChannel = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelName).at(0);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  LOG(info) << <span class="stringliteral">"Starting the benchmark with message size of "</span> << fMsgSize << <span class="stringliteral">" and "</span> << fMaxIterations << <span class="stringliteral">" iterations."</span>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classFairMQBenchmarkSampler.html#ae016fde6952dcd0ed671b4a6c51cb835"> 59</a></span>  <span class="keyword">auto</span> tStart = std::chrono::high_resolution_clock::now();</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html">fair::mq::tools::RateLimiter</a> rateLimiter(fMsgRate);</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> parts;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < fNumParts; ++i) {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  parts.<a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(dataOutChannel.NewMessage(fMsgSize, <a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a>{fMsgAlignment}));</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (fMemSet) {</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  std::memset(parts.<a class="code" href="classFairMQParts.html#ac7fdb59ead8736caebaafd8861d6d7bd">At</a>(i)->GetData(), 0, parts.<a class="code" href="classFairMQParts.html#ac7fdb59ead8736caebaafd8861d6d7bd">At</a>(i)->GetSize());</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (dataOutChannel.<a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(parts) >= 0) {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (fMaxIterations > 0) {</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span> (fNumIterations >= fMaxIterations) {</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  ++fNumIterations;</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  FairMQMessagePtr msg(dataOutChannel.NewMessage(fMsgSize, <a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a>{fMsgAlignment}));</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (fMemSet) {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  std::memset(msg->GetData(), 0, msg->GetSize());</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (dataOutChannel.<a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(msg) >= 0) {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (fMaxIterations > 0) {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (fNumIterations >= fMaxIterations) {</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  ++fNumIterations;</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (fMsgRate > 0) {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  rateLimiter.maybe_sleep();</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">auto</span> tEnd = std::chrono::high_resolution_clock::now();</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  LOG(info) << <span class="stringliteral">"Done "</span> << fNumIterations << <span class="stringliteral">" iterations in "</span> << std::chrono::duration<double, std::milli>(tEnd - tStart).count() << <span class="stringliteral">"ms."</span>;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">bool</span> fMemSet;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordtype">size_t</span> fNumParts;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">size_t</span> fMsgSize;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">size_t</span> fMsgAlignment;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">float</span> fMsgRate;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  uint64_t fNumIterations;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  uint64_t fMaxIterations;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  std::string fOutChannelName;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQBENCHMARKSAMPLER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1Alignment_html"><div class="ttname"><a href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:25</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_afaaa0eedc7a2c1e9fa6bec33dd1f3709"><div class="ttname"><a href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">FairMQParts::AddPart</a></div><div class="ttdeci">void AddPart(FairMQMessage *msg)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:48</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_ac7fdb59ead8736caebaafd8861d6d7bd"><div class="ttname"><a href="classFairMQParts.html#ac7fdb59ead8736caebaafd8861d6d7bd">FairMQParts::At</a></div><div class="ttdeci">std::unique_ptr< FairMQMessage > & At(const int index)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:84</div></div>
|
||||
<div class="ttc" id="aclassFairMQBenchmarkSampler_html_ae016fde6952dcd0ed671b4a6c51cb835"><div class="ttname"><a href="classFairMQBenchmarkSampler.html#ae016fde6952dcd0ed671b4a6c51cb835">FairMQBenchmarkSampler::Run</a></div><div class="ttdeci">void Run() override</div><div class="ttdoc">Runs the device (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQBenchmarkSampler.h:59</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1tools_1_1RateLimiter_html"><div class="ttname"><a href="classfair_1_1mq_1_1tools_1_1RateLimiter.html">fair::mq::tools::RateLimiter</a></div><div class="ttdef"><b>Definition:</b> RateLimit.h:42</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a8be266eb34c0aa683674570866a7804d"><div class="ttname"><a href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">FairMQChannel::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:260</div></div>
|
||||
<div class="ttc" id="aclassFairMQBenchmarkSampler_html_aa515049fe636820d5bdb2032d5e3978c"><div class="ttname"><a href="classFairMQBenchmarkSampler.html#aa515049fe636820d5bdb2032d5e3978c">FairMQBenchmarkSampler::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQBenchmarkSampler.h:47</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac6e41280dd6cc8b217944a97fd9c548c"><div class="ttname"><a href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">FairMQDevice::NewStatePending</a></div><div class="ttdeci">bool NewStatePending() const</div><div class="ttdoc">Returns true if a new state has been requested, signaling the current handler to stop.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:470</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassFairMQBenchmarkSampler_html"><div class="ttname"><a href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></div><div class="ttdef"><b>Definition:</b> FairMQBenchmarkSampler.h:27</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
450
v1.4.33/FairMQChannel_8h_source.html
Normal file
@@ -0,0 +1,450 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQChannel.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQChannel.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQCHANNEL_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQCHANNEL_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <FairMQTransportFactory.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <FairMQUnmanagedRegion.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <FairMQSocket.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/Transports.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <FairMQParts.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <FairMQMessage.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span> <span class="comment">// unique_ptr, shared_ptr</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <utility></span> <span class="comment">// std::move</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <cstdint></span> <span class="comment">// int64_t</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classFairMQChannel.html"> 34</a></span> <span class="keyword">class </span><a class="code" href="classFairMQChannel.html">FairMQChannel</a></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFairMQDevice.html">FairMQDevice</a>;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classFairMQChannel.html#ab681571de3ef6c1021b7981054d152f0">FairMQChannel</a>();</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#acf2763fbdad18f5551ec7a3eb4e09829"> 44</a></span>  <a class="code" href="classFairMQChannel.html#acf2763fbdad18f5551ec7a3eb4e09829">FairMQChannel</a>(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a3223d192c795abb3f357df5883dd67f5"> 50</a></span>  <a class="code" href="classFairMQChannel.html#a3223d192c795abb3f357df5883dd67f5">FairMQChannel</a>(<span class="keyword">const</span> std::string& type, <span class="keyword">const</span> std::string& method, <span class="keyword">const</span> std::string& address);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a0c44e61cd9e8153c7a0ed5903d2949c4"> 56</a></span>  <a class="code" href="classFairMQChannel.html#a0c44e61cd9e8153c7a0ed5903d2949c4">FairMQChannel</a>(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& type, std::shared_ptr<FairMQTransportFactory> factory);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a9c411019f1ee1d0dcc9960ec5b2fde46"> 64</a></span>  <a class="code" href="classFairMQChannel.html#a9c411019f1ee1d0dcc9960ec5b2fde46">FairMQChannel</a>(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& type, <span class="keyword">const</span> std::string& method, <span class="keyword">const</span> std::string& address, std::shared_ptr<FairMQTransportFactory> factory);</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classFairMQChannel.html#ab681571de3ef6c1021b7981054d152f0">FairMQChannel</a>(<span class="keyword">const</span> std::string& name, <span class="keywordtype">int</span> index, <span class="keyword">const</span> fair::mq::Properties& properties);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classFairMQChannel.html#ab681571de3ef6c1021b7981054d152f0">FairMQChannel</a>(<span class="keyword">const</span> <a class="code" href="classFairMQChannel.html">FairMQChannel</a>&);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a837dbc5a66b93e002f430857c7695efe"> 72</a></span>  <a class="code" href="classFairMQChannel.html#a837dbc5a66b93e002f430857c7695efe">FairMQChannel</a>(<span class="keyword">const</span> <a class="code" href="classFairMQChannel.html">FairMQChannel</a>&, <span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// FairMQChannel(FairMQChannel&&) = delete;</span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classFairMQChannel.html">FairMQChannel</a>& <a class="code" href="classFairMQChannel.html#a04a9ac897488b2a4a5176b86f5e74483">operator=</a>(<span class="keyword">const</span> <a class="code" href="classFairMQChannel.html">FairMQChannel</a>&);</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// FairMQChannel& operator=(FairMQChannel&&) = delete;</span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a9f4ffef546b24680daf6d5f40efc848f"> 84</a></span>  <span class="keyword">virtual</span> <a class="code" href="classFairMQChannel.html#a9f4ffef546b24680daf6d5f40efc848f">~FairMQChannel</a>() { <span class="comment">/* LOG(warn) << "Destroying channel '" << fName << "'"; */</span> }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structFairMQChannel_1_1ChannelConfigurationError.html"> 86</a></span>  <span class="keyword">struct </span><a class="code" href="structFairMQChannel_1_1ChannelConfigurationError.html">ChannelConfigurationError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classFairMQSocket.html">FairMQSocket</a>& GetSocket()<span class="keyword"> const </span>{ assert(fSocket); <span class="keywordflow">return</span> *fSocket; }</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">bool</span> Bind(<span class="keyword">const</span> std::string& address)</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  fMethod = <span class="stringliteral">"bind"</span>;</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  fAddress = address;</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> fSocket->Bind(address);</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordtype">bool</span> Connect(<span class="keyword">const</span> std::string& address)</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  fMethod = <span class="stringliteral">"connect"</span>;</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  fAddress = address;</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> fSocket->Connect(address);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a9009e62346f999fbdbd79c82cdf3820c"> 106</a></span>  std::string <a class="code" href="classFairMQChannel.html#a9009e62346f999fbdbd79c82cdf3820c">GetName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fName; }</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a5bd5adc3c59f7606e0e868a0f17e28f5"> 110</a></span>  std::string <a class="code" href="classFairMQChannel.html#a5bd5adc3c59f7606e0e868a0f17e28f5">GetPrefix</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  std::string prefix = fName;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  prefix = prefix.erase(fName.rfind(<span class="charliteral">'['</span>));</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> prefix;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a8d6933d4d73d8fb9e18cf63800b1d8df"> 119</a></span>  std::string <a class="code" href="classFairMQChannel.html#a8d6933d4d73d8fb9e18cf63800b1d8df">GetIndex</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::string indexStr = fName;</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  indexStr.erase(indexStr.rfind(<span class="charliteral">']'</span>));</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  indexStr.erase(0, indexStr.rfind(<span class="charliteral">'['</span>) + 1);</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> indexStr;</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ac7b933be2f610691dc24439d0d269383"> 129</a></span>  std::string <a class="code" href="classFairMQChannel.html#ac7b933be2f610691dc24439d0d269383">GetType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fType; }</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a314c4760f1c420baed3d379a9da1041d"> 133</a></span>  std::string <a class="code" href="classFairMQChannel.html#a314c4760f1c420baed3d379a9da1041d">GetMethod</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fMethod; }</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a4b68f42e263c0666e6bcc01c2e63c384"> 137</a></span>  std::string <a class="code" href="classFairMQChannel.html#a4b68f42e263c0666e6bcc01c2e63c384">GetAddress</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fAddress; }</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a1521eb8016da9ffcb4b159423f8e971d"> 141</a></span>  std::string <a class="code" href="classFairMQChannel.html#a1521eb8016da9ffcb4b159423f8e971d">GetTransportName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fair::mq::TransportName(fTransportType); }</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a5f4210c9b05f5b38c2549bf2e65b7c45"> 145</a></span>  fair::mq::Transport <a class="code" href="classFairMQChannel.html#a5f4210c9b05f5b38c2549bf2e65b7c45">GetTransportType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fTransportType; }</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ae597404d6fe4209855e44bda8ee9a298"> 149</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#ae597404d6fe4209855e44bda8ee9a298">GetSndBufSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSndBufSize; }</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a7998ca57ca6842f52483103a386189a4"> 153</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#a7998ca57ca6842f52483103a386189a4">GetRcvBufSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fRcvBufSize; }</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#abc48790b56c92e1e7f71bf3a9057b8b4"> 157</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#abc48790b56c92e1e7f71bf3a9057b8b4">GetSndKernelSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSndKernelSize; }</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a3247b369b02586543c3c4c62b2dd1ab8"> 161</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#a3247b369b02586543c3c4c62b2dd1ab8">GetRcvKernelSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fRcvKernelSize; }</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#afbc97ff72e152db5cb4f0c63f7e00243"> 165</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#afbc97ff72e152db5cb4f0c63f7e00243">GetLinger</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fLinger; }</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#af82cb56741d214bd4db0864e34d9cae3"> 169</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#af82cb56741d214bd4db0864e34d9cae3">GetRateLogging</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fRateLogging; }</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a2b3d7467e1ee3c5f052efc4ef3ba09d3"> 173</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#a2b3d7467e1ee3c5f052efc4ef3ba09d3">GetPortRangeMin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPortRangeMin; }</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a24199032d2bb90271517e82adfebb45d"> 177</a></span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQChannel.html#a24199032d2bb90271517e82adfebb45d">GetPortRangeMax</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPortRangeMax; }</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ae4f8bc56c89538dbd7833f8bd5f2d0d2"> 181</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQChannel.html#ae4f8bc56c89538dbd7833f8bd5f2d0d2">GetAutoBind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fAutoBind; }</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a7dd6f31b095b15a4624045ac259563ca"> 185</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a7dd6f31b095b15a4624045ac259563ca">UpdateName</a>(<span class="keyword">const</span> std::string& name) { fName = name; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#af9454c7d2ec6950764f3834158379e9b"> 189</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#af9454c7d2ec6950764f3834158379e9b">UpdateType</a>(<span class="keyword">const</span> std::string& type) { fType = type; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ac67be0a888fb0ffa61633d28a5c37d18"> 193</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#ac67be0a888fb0ffa61633d28a5c37d18">UpdateMethod</a>(<span class="keyword">const</span> std::string& method) { fMethod = method; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a015422384ffb47e8b9c667006a2dff60"> 197</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a015422384ffb47e8b9c667006a2dff60">UpdateAddress</a>(<span class="keyword">const</span> std::string& address) { fAddress = address; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a9dc3e2a4a3b3f02be98e2b4e5053a258"> 201</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a9dc3e2a4a3b3f02be98e2b4e5053a258">UpdateTransport</a>(<span class="keyword">const</span> std::string& transport) { fTransportType = fair::mq::TransportType(transport); <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a041eafc10c70fa73bceaa10644db3e6c"> 205</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a041eafc10c70fa73bceaa10644db3e6c">UpdateSndBufSize</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> sndBufSize) { fSndBufSize = sndBufSize; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#aa0e59f516d68cdf82b8c4f6150624a0e"> 209</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#aa0e59f516d68cdf82b8c4f6150624a0e">UpdateRcvBufSize</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> rcvBufSize) { fRcvBufSize = rcvBufSize; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ac74bc8cbda6e2f7b50dd8c7b8643b9d5"> 213</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#ac74bc8cbda6e2f7b50dd8c7b8643b9d5">UpdateSndKernelSize</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> sndKernelSize) { fSndKernelSize = sndKernelSize; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a10e21a697526a8d07cb30e54ce77d675"> 217</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a10e21a697526a8d07cb30e54ce77d675">UpdateRcvKernelSize</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> rcvKernelSize) { fRcvKernelSize = rcvKernelSize; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ad077c46bafdaba0a7792458b41600571"> 221</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#ad077c46bafdaba0a7792458b41600571">UpdateLinger</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> duration) { fLinger = duration; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a2202995e3281a8bc8fdee10c47ff52c4"> 225</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a2202995e3281a8bc8fdee10c47ff52c4">UpdateRateLogging</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> rateLogging) { fRateLogging = rateLogging; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a633ae618067a1b02280fb16cf4117b70"> 229</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a633ae618067a1b02280fb16cf4117b70">UpdatePortRangeMin</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> minPort) { fPortRangeMin = minPort; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a7dc046299bc2a31135cf170f9952a1a2"> 233</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#a7dc046299bc2a31135cf170f9952a1a2">UpdatePortRangeMax</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> maxPort) { fPortRangeMax = maxPort; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#af84f328394d7a2c8ac4252e8aa9c0c69"> 237</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#af84f328394d7a2c8ac4252e8aa9c0c69">UpdateAutoBind</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> autobind) { fAutoBind = autobind; <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>(); }</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#ae03deb5cf1ac72f7bcd492e1ebd9b8e7"> 241</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQChannel.html#ae03deb5cf1ac72f7bcd492e1ebd9b8e7">IsValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fValid; }</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQChannel.html#ab9a7fdf4097c67e4480d7f8dc5f88f8f">Validate</a>();</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordtype">void</span> Init();</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordtype">bool</span> ConnectEndpoint(<span class="keyword">const</span> std::string& endpoint);</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordtype">bool</span> BindEndpoint(std::string& endpoint);</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266"> 254</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>() { fValid = <span class="keyword">false</span>; }</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d"> 260</a></span>  int64_t <a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(FairMQMessagePtr& msg, <span class="keywordtype">int</span> sndTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  CheckSendCompatibility(msg);</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> fSocket->Send(msg, sndTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75"> 270</a></span>  int64_t <a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(FairMQMessagePtr& msg, <span class="keywordtype">int</span> rcvTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  CheckReceiveCompatibility(msg);</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> fSocket->Receive(msg, rcvTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#af41430efc6cb963f57c861c1019b64f1"> 280</a></span>  int64_t <a class="code" href="classFairMQChannel.html#af41430efc6cb963f57c861c1019b64f1">Send</a>(std::vector<FairMQMessagePtr>& msgVec, <span class="keywordtype">int</span> sndTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  CheckSendCompatibility(msgVec);</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">return</span> fSocket->Send(msgVec, sndTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a260e3826ad87f232f978a00a6a3654cc"> 290</a></span>  int64_t <a class="code" href="classFairMQChannel.html#a260e3826ad87f232f978a00a6a3654cc">Receive</a>(std::vector<FairMQMessagePtr>& msgVec, <span class="keywordtype">int</span> rcvTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  CheckReceiveCompatibility(msgVec);</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">return</span> fSocket->Receive(msgVec, rcvTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a190b3a16e9320c6c49e349bca4bf70ef"> 300</a></span>  int64_t <a class="code" href="classFairMQChannel.html#a190b3a16e9320c6c49e349bca4bf70ef">Send</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keywordtype">int</span> sndTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(parts.fParts, sndTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classFairMQChannel.html#a0a58c080d525b7e2e57cbb55a49c1c22"> 309</a></span>  int64_t <a class="code" href="classFairMQChannel.html#a0a58c080d525b7e2e57cbb55a49c1c22">Receive</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keywordtype">int</span> rcvTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(parts.fParts, rcvTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetBytesTx()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSocket->GetBytesTx(); }</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetBytesRx()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSocket->GetBytesRx(); }</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetMessagesTx()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSocket->GetMessagesTx(); }</div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetMessagesRx()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSocket->GetMessagesRx(); }</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keyword">auto</span> Transport() -> <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* { <span class="keywordflow">return</span> fTransportFactory.get(); };</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  FairMQMessagePtr NewMessage(Args&&... args)</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  {</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">return</span> Transport()->CreateMessage(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  FairMQMessagePtr NewSimpleMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> Transport()->NewSimpleMessage(data);</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  </div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  FairMQMessagePtr NewStaticMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">return</span> Transport()->NewStaticMessage(data);</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  FairMQUnmanagedRegionPtr NewUnmanagedRegion(Args&&... args)</div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> Transport()->CreateUnmanagedRegion(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">static</span> constexpr fair::mq::Transport DefaultTransportType = fair::mq::Transport::DEFAULT;</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultTransportName = <span class="stringliteral">"default"</span>;</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultName = <span class="stringliteral">""</span>;</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultType = <span class="stringliteral">"unspecified"</span>;</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultMethod = <span class="stringliteral">"unspecified"</span>;</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultAddress = <span class="stringliteral">"unspecified"</span>;</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultSndBufSize = 1000;</div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultRcvBufSize = 1000;</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultSndKernelSize = 0;</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultRcvKernelSize = 0;</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultLinger = 500;</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultRateLogging = 1;</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultPortRangeMin = 22000;</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultPortRangeMax = 23000;</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> DefaultAutoBind = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  std::shared_ptr<FairMQTransportFactory> fTransportFactory;</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  fair::mq::Transport fTransportType;</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  std::unique_ptr<FairMQSocket> fSocket;</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  std::string fName;</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  std::string fType;</div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  std::string fMethod;</div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  std::string fAddress;</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">int</span> fSndBufSize;</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">int</span> fRcvBufSize;</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordtype">int</span> fSndKernelSize;</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">int</span> fRcvKernelSize;</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordtype">int</span> fLinger;</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordtype">int</span> fRateLogging;</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">int</span> fPortRangeMin;</div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordtype">int</span> fPortRangeMax;</div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">bool</span> fAutoBind;</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordtype">bool</span> fValid;</div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordtype">void</span> CheckSendCompatibility(FairMQMessagePtr& msg)</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span> (fTransportType != msg->GetType()) {</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  FairMQMessagePtr msgWrapper(NewMessage(</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  msg->GetData(),</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  msg->GetSize(),</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  [](<span class="keywordtype">void</span>* <span class="comment">/*data*/</span>, <span class="keywordtype">void</span>* _msg) { delete static_cast<FairMQMessage*>(_msg); },</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  msg.get()</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  ));</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  msg.release();</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  msg = move(msgWrapper);</div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordtype">void</span> CheckSendCompatibility(std::vector<FairMQMessagePtr>& msgVec)</div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& msg : msgVec) {</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (fTransportType != msg->GetType()) {</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  FairMQMessagePtr msgWrapper(NewMessage(</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  msg->GetData(),</div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  msg->GetSize(),</div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  [](<span class="keywordtype">void</span>* <span class="comment">/*data*/</span>, <span class="keywordtype">void</span>* _msg) { delete static_cast<FairMQMessage*>(_msg); },</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  msg.get()</div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  ));</div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  msg.release();</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  msg = move(msgWrapper);</div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordtype">void</span> CheckReceiveCompatibility(FairMQMessagePtr& msg)</div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> (fTransportType != msg->GetType()) {</div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  FairMQMessagePtr newMsg(NewMessage());</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  msg = move(newMsg);</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordtype">void</span> CheckReceiveCompatibility(std::vector<FairMQMessagePtr>& msgVec)</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& msg : msgVec) {</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> (fTransportType != msg->GetType()) {</div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  FairMQMessagePtr newMsg(NewMessage());</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  msg = move(newMsg);</div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordtype">void</span> InitTransport(std::shared_ptr<FairMQTransportFactory> factory)</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  {</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  fTransportFactory = factory;</div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  fTransportType = factory->GetType();</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> };</div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQCHANNEL_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a7dc046299bc2a31135cf170f9952a1a2"><div class="ttname"><a href="classFairMQChannel.html#a7dc046299bc2a31135cf170f9952a1a2">FairMQChannel::UpdatePortRangeMax</a></div><div class="ttdeci">void UpdatePortRangeMax(const int maxPort)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:233</div></div>
|
||||
<div class="ttc" id="aclassFairMQSocket_html"><div class="ttname"><a href="classFairMQSocket.html">FairMQSocket</a></div><div class="ttdef"><b>Definition:</b> FairMQSocket.h:36</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a837dbc5a66b93e002f430857c7695efe"><div class="ttname"><a href="classFairMQChannel.html#a837dbc5a66b93e002f430857c7695efe">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel(const FairMQChannel &, const std::string &name)</div><div class="ttdoc">Copy Constructor (with new name)</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a9f4ffef546b24680daf6d5f40efc848f"><div class="ttname"><a href="classFairMQChannel.html#a9f4ffef546b24680daf6d5f40efc848f">FairMQChannel::~FairMQChannel</a></div><div class="ttdeci">virtual ~FairMQChannel()</div><div class="ttdoc">Move assignment operator.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:84</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ab9a7fdf4097c67e4480d7f8dc5f88f8f"><div class="ttname"><a href="classFairMQChannel.html#ab9a7fdf4097c67e4480d7f8dc5f88f8f">FairMQChannel::Validate</a></div><div class="ttdeci">bool Validate()</div><div class="ttdef"><b>Definition:</b> FairMQChannel.cxx:163</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a5f4210c9b05f5b38c2549bf2e65b7c45"><div class="ttname"><a href="classFairMQChannel.html#a5f4210c9b05f5b38c2549bf2e65b7c45">FairMQChannel::GetTransportType</a></div><div class="ttdeci">fair::mq::Transport GetTransportType() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:145</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_afbc97ff72e152db5cb4f0c63f7e00243"><div class="ttname"><a href="classFairMQChannel.html#afbc97ff72e152db5cb4f0c63f7e00243">FairMQChannel::GetLinger</a></div><div class="ttdeci">int GetLinger() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:165</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a8d6933d4d73d8fb9e18cf63800b1d8df"><div class="ttname"><a href="classFairMQChannel.html#a8d6933d4d73d8fb9e18cf63800b1d8df">FairMQChannel::GetIndex</a></div><div class="ttdeci">std::string GetIndex() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:119</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a190b3a16e9320c6c49e349bca4bf70ef"><div class="ttname"><a href="classFairMQChannel.html#a190b3a16e9320c6c49e349bca4bf70ef">FairMQChannel::Send</a></div><div class="ttdeci">int64_t Send(FairMQParts &parts, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:300</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a4b68f42e263c0666e6bcc01c2e63c384"><div class="ttname"><a href="classFairMQChannel.html#a4b68f42e263c0666e6bcc01c2e63c384">FairMQChannel::GetAddress</a></div><div class="ttdeci">std::string GetAddress() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:137</div></div>
|
||||
<div class="ttc" id="astructFairMQChannel_1_1ChannelConfigurationError_html"><div class="ttname"><a href="structFairMQChannel_1_1ChannelConfigurationError.html">FairMQChannel::ChannelConfigurationError</a></div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:86</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_af84f328394d7a2c8ac4252e8aa9c0c69"><div class="ttname"><a href="classFairMQChannel.html#af84f328394d7a2c8ac4252e8aa9c0c69">FairMQChannel::UpdateAutoBind</a></div><div class="ttdeci">void UpdateAutoBind(const bool autobind)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:237</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a10e21a697526a8d07cb30e54ce77d675"><div class="ttname"><a href="classFairMQChannel.html#a10e21a697526a8d07cb30e54ce77d675">FairMQChannel::UpdateRcvKernelSize</a></div><div class="ttdeci">void UpdateRcvKernelSize(const int rcvKernelSize)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:217</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a015422384ffb47e8b9c667006a2dff60"><div class="ttname"><a href="classFairMQChannel.html#a015422384ffb47e8b9c667006a2dff60">FairMQChannel::UpdateAddress</a></div><div class="ttdeci">void UpdateAddress(const std::string &address)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:197</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a1521eb8016da9ffcb4b159423f8e971d"><div class="ttname"><a href="classFairMQChannel.html#a1521eb8016da9ffcb4b159423f8e971d">FairMQChannel::GetTransportName</a></div><div class="ttdeci">std::string GetTransportName() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:141</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ae4f8bc56c89538dbd7833f8bd5f2d0d2"><div class="ttname"><a href="classFairMQChannel.html#ae4f8bc56c89538dbd7833f8bd5f2d0d2">FairMQChannel::GetAutoBind</a></div><div class="ttdeci">bool GetAutoBind() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:181</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_af82cb56741d214bd4db0864e34d9cae3"><div class="ttname"><a href="classFairMQChannel.html#af82cb56741d214bd4db0864e34d9cae3">FairMQChannel::GetRateLogging</a></div><div class="ttdeci">int GetRateLogging() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:169</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a5bd5adc3c59f7606e0e868a0f17e28f5"><div class="ttname"><a href="classFairMQChannel.html#a5bd5adc3c59f7606e0e868a0f17e28f5">FairMQChannel::GetPrefix</a></div><div class="ttdeci">std::string GetPrefix() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:110</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a2202995e3281a8bc8fdee10c47ff52c4"><div class="ttname"><a href="classFairMQChannel.html#a2202995e3281a8bc8fdee10c47ff52c4">FairMQChannel::UpdateRateLogging</a></div><div class="ttdeci">void UpdateRateLogging(const int rateLogging)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:225</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a1f040835106f6b4fa735ca3d57491f75"><div class="ttname"><a href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">FairMQChannel::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:270</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a8be266eb34c0aa683674570866a7804d"><div class="ttname"><a href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">FairMQChannel::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:260</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_aa5ea97bb9ebfe53796b3e59e18ec2266"><div class="ttname"><a href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">FairMQChannel::Invalidate</a></div><div class="ttdeci">void Invalidate()</div><div class="ttdoc">invalidates the channel (requires validation to be used again).</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:254</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a3247b369b02586543c3c4c62b2dd1ab8"><div class="ttname"><a href="classFairMQChannel.html#a3247b369b02586543c3c4c62b2dd1ab8">FairMQChannel::GetRcvKernelSize</a></div><div class="ttdeci">int GetRcvKernelSize() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:161</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ac67be0a888fb0ffa61633d28a5c37d18"><div class="ttname"><a href="classFairMQChannel.html#ac67be0a888fb0ffa61633d28a5c37d18">FairMQChannel::UpdateMethod</a></div><div class="ttdeci">void UpdateMethod(const std::string &method)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:193</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a9dc3e2a4a3b3f02be98e2b4e5053a258"><div class="ttname"><a href="classFairMQChannel.html#a9dc3e2a4a3b3f02be98e2b4e5053a258">FairMQChannel::UpdateTransport</a></div><div class="ttdeci">void UpdateTransport(const std::string &transport)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:201</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ae597404d6fe4209855e44bda8ee9a298"><div class="ttname"><a href="classFairMQChannel.html#ae597404d6fe4209855e44bda8ee9a298">FairMQChannel::GetSndBufSize</a></div><div class="ttdeci">int GetSndBufSize() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:149</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ad077c46bafdaba0a7792458b41600571"><div class="ttname"><a href="classFairMQChannel.html#ad077c46bafdaba0a7792458b41600571">FairMQChannel::UpdateLinger</a></div><div class="ttdeci">void UpdateLinger(const int duration)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:221</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a0c44e61cd9e8153c7a0ed5903d2949c4"><div class="ttname"><a href="classFairMQChannel.html#a0c44e61cd9e8153c7a0ed5903d2949c4">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel(const std::string &name, const std::string &type, std::shared_ptr< FairMQTransportFactory > factory)</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a041eafc10c70fa73bceaa10644db3e6c"><div class="ttname"><a href="classFairMQChannel.html#a041eafc10c70fa73bceaa10644db3e6c">FairMQChannel::UpdateSndBufSize</a></div><div class="ttdeci">void UpdateSndBufSize(const int sndBufSize)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:205</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ac74bc8cbda6e2f7b50dd8c7b8643b9d5"><div class="ttname"><a href="classFairMQChannel.html#ac74bc8cbda6e2f7b50dd8c7b8643b9d5">FairMQChannel::UpdateSndKernelSize</a></div><div class="ttdeci">void UpdateSndKernelSize(const int sndKernelSize)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:213</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a0a58c080d525b7e2e57cbb55a49c1c22"><div class="ttname"><a href="classFairMQChannel.html#a0a58c080d525b7e2e57cbb55a49c1c22">FairMQChannel::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQParts &parts, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:309</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a7dd6f31b095b15a4624045ac259563ca"><div class="ttname"><a href="classFairMQChannel.html#a7dd6f31b095b15a4624045ac259563ca">FairMQChannel::UpdateName</a></div><div class="ttdeci">void UpdateName(const std::string &name)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:185</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_aa0e59f516d68cdf82b8c4f6150624a0e"><div class="ttname"><a href="classFairMQChannel.html#aa0e59f516d68cdf82b8c4f6150624a0e">FairMQChannel::UpdateRcvBufSize</a></div><div class="ttdeci">void UpdateRcvBufSize(const int rcvBufSize)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:209</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a04a9ac897488b2a4a5176b86f5e74483"><div class="ttname"><a href="classFairMQChannel.html#a04a9ac897488b2a4a5176b86f5e74483">FairMQChannel::operator=</a></div><div class="ttdeci">FairMQChannel & operator=(const FairMQChannel &)</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.cxx:135</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ae03deb5cf1ac72f7bcd492e1ebd9b8e7"><div class="ttname"><a href="classFairMQChannel.html#ae03deb5cf1ac72f7bcd492e1ebd9b8e7">FairMQChannel::IsValid</a></div><div class="ttdeci">bool IsValid() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:241</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ac7b933be2f610691dc24439d0d269383"><div class="ttname"><a href="classFairMQChannel.html#ac7b933be2f610691dc24439d0d269383">FairMQChannel::GetType</a></div><div class="ttdeci">std::string GetType() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:129</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a9c411019f1ee1d0dcc9960ec5b2fde46"><div class="ttname"><a href="classFairMQChannel.html#a9c411019f1ee1d0dcc9960ec5b2fde46">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel(const std::string &name, const std::string &type, const std::string &method, const std::string &address, std::shared_ptr< FairMQTransportFactory > factory)</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_abc48790b56c92e1e7f71bf3a9057b8b4"><div class="ttname"><a href="classFairMQChannel.html#abc48790b56c92e1e7f71bf3a9057b8b4">FairMQChannel::GetSndKernelSize</a></div><div class="ttdeci">int GetSndKernelSize() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:157</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a3223d192c795abb3f357df5883dd67f5"><div class="ttname"><a href="classFairMQChannel.html#a3223d192c795abb3f357df5883dd67f5">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel(const std::string &type, const std::string &method, const std::string &address)</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a260e3826ad87f232f978a00a6a3654cc"><div class="ttname"><a href="classFairMQChannel.html#a260e3826ad87f232f978a00a6a3654cc">FairMQChannel::Receive</a></div><div class="ttdeci">int64_t Receive(std::vector< FairMQMessagePtr > &msgVec, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:290</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a24199032d2bb90271517e82adfebb45d"><div class="ttname"><a href="classFairMQChannel.html#a24199032d2bb90271517e82adfebb45d">FairMQChannel::GetPortRangeMax</a></div><div class="ttdeci">int GetPortRangeMax() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:177</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_acf2763fbdad18f5551ec7a3eb4e09829"><div class="ttname"><a href="classFairMQChannel.html#acf2763fbdad18f5551ec7a3eb4e09829">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel(const std::string &name)</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_af41430efc6cb963f57c861c1019b64f1"><div class="ttname"><a href="classFairMQChannel.html#af41430efc6cb963f57c861c1019b64f1">FairMQChannel::Send</a></div><div class="ttdeci">int64_t Send(std::vector< FairMQMessagePtr > &msgVec, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:280</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a2b3d7467e1ee3c5f052efc4ef3ba09d3"><div class="ttname"><a href="classFairMQChannel.html#a2b3d7467e1ee3c5f052efc4ef3ba09d3">FairMQChannel::GetPortRangeMin</a></div><div class="ttdeci">int GetPortRangeMin() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:173</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a633ae618067a1b02280fb16cf4117b70"><div class="ttname"><a href="classFairMQChannel.html#a633ae618067a1b02280fb16cf4117b70">FairMQChannel::UpdatePortRangeMin</a></div><div class="ttdeci">void UpdatePortRangeMin(const int minPort)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:229</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_ab681571de3ef6c1021b7981054d152f0"><div class="ttname"><a href="classFairMQChannel.html#ab681571de3ef6c1021b7981054d152f0">FairMQChannel::FairMQChannel</a></div><div class="ttdeci">FairMQChannel()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.cxx:51</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a314c4760f1c420baed3d379a9da1041d"><div class="ttname"><a href="classFairMQChannel.html#a314c4760f1c420baed3d379a9da1041d">FairMQChannel::GetMethod</a></div><div class="ttdeci">std::string GetMethod() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:133</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_af9454c7d2ec6950764f3834158379e9b"><div class="ttname"><a href="classFairMQChannel.html#af9454c7d2ec6950764f3834158379e9b">FairMQChannel::UpdateType</a></div><div class="ttdeci">void UpdateType(const std::string &type)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:189</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a9009e62346f999fbdbd79c82cdf3820c"><div class="ttname"><a href="classFairMQChannel.html#a9009e62346f999fbdbd79c82cdf3820c">FairMQChannel::GetName</a></div><div class="ttdeci">std::string GetName() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:106</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a7998ca57ca6842f52483103a386189a4"><div class="ttname"><a href="classFairMQChannel.html#a7998ca57ca6842f52483103a386189a4">FairMQChannel::GetRcvBufSize</a></div><div class="ttdeci">int GetRcvBufSize() const</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:153</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
592
v1.4.33/FairMQDevice_8h_source.html
Normal file
@@ -0,0 +1,592 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQDevice.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQDevice.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2012-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQDEVICE_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQDEVICE_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <StateMachine.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <FairMQTransportFactory.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/Transports.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/StateQueue.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <FairMQChannel.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <FairMQMessage.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <FairMQParts.h></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <FairMQUnmanagedRegion.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <fairmq/ProgOptions.h></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <memory></span> <span class="comment">// unique_ptr</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <algorithm></span> <span class="comment">// find</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <cstddef></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <fairmq/tools/Version.h></span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">using</span> FairMQChannelMap = std::unordered_map<std::string, std::vector<FairMQChannel>>;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">using</span> InputMsgCallback = std::function<bool(FairMQMessagePtr&, <span class="keywordtype">int</span>)>;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">using</span> InputMultipartCallback = std::function<bool(<a class="code" href="classFairMQParts.html">FairMQParts</a>&, <span class="keywordtype">int</span>)>;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1OngoingTransition.html"> 46</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1OngoingTransition.html">OngoingTransition</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classFairMQDevice.html"> 49</a></span> <span class="keyword">class </span><a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFairMQChannel.html">FairMQChannel</a>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>();</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>(<a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>& config);</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version);</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>(<a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>& config, <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version);</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>(<a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>* config, <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe"> 70</a></span>  <a class="code" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a>(<span class="keyword">const</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd"> 72</a></span>  <a class="code" href="classFairMQDevice.html">FairMQDevice</a> <a class="code" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a>(<span class="keyword">const</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">virtual</span> <a class="code" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a>();</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a>();</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Serializer, <span class="keyword">typename</span> DataType, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordtype">void</span> Serialize(<a class="code" href="classFairMQMessage.html">FairMQMessage</a>& msg, DataType&& data, Args&&... args)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  Serializer().Serialize(msg, std::forward<DataType>(data), std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Deserializer, <span class="keyword">typename</span> DataType, <span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> Deserialize(<a class="code" href="classFairMQMessage.html">FairMQMessage</a>& msg, DataType&& data, Args&&... args)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  Deserializer().Deserialize(msg, std::forward<DataType>(data), std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2"> 97</a></span>  int64_t <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(FairMQMessagePtr& msg, <span class="keyword">const</span> std::string& channel, <span class="keyword">const</span> <span class="keywordtype">int</span> index = 0, <span class="keywordtype">int</span> sndTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> GetChannel(channel, index).<a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(msg, sndTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f"> 108</a></span>  int64_t <a class="code" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(FairMQMessagePtr& msg, <span class="keyword">const</span> std::string& channel, <span class="keyword">const</span> <span class="keywordtype">int</span> index = 0, <span class="keywordtype">int</span> rcvTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> GetChannel(channel, index).<a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(msg, rcvTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55"> 119</a></span>  int64_t <a class="code" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keyword">const</span> std::string& channel, <span class="keyword">const</span> <span class="keywordtype">int</span> index = 0, <span class="keywordtype">int</span> sndTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> GetChannel(channel, index).<a class="code" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(parts.fParts, sndTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54"> 130</a></span>  int64_t <a class="code" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keyword">const</span> std::string& channel, <span class="keyword">const</span> <span class="keywordtype">int</span> index = 0, <span class="keywordtype">int</span> rcvTimeoutInMs = -1)</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> GetChannel(channel, index).<a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(parts.fParts, rcvTimeoutInMs);</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c"> 136</a></span>  <span class="keyword">auto</span> <a class="code" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>() const -> <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>*</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>.get();</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// creates message with the default device transport</span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  FairMQMessagePtr NewMessage(Args&&... args)</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>()->CreateMessage(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// creates message with the transport of the specified channel</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  FairMQMessagePtr NewMessageFor(<span class="keyword">const</span> std::string& channel, <span class="keywordtype">int</span> index, Args&&... args)</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> GetChannel(channel, index).NewMessage(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// creates a message that will not be cleaned up after transfer, with the default device transport</span></div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  FairMQMessagePtr NewStaticMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>()->NewStaticMessage(data);</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// creates a message that will not be cleaned up after transfer, with the transport of the specified channel</span></div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  FairMQMessagePtr NewStaticMessageFor(<span class="keyword">const</span> std::string& channel, <span class="keywordtype">int</span> index, <span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> GetChannel(channel, index).NewStaticMessage(data);</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// creates a message with a copy of the provided data, with the default device transport</span></div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  FairMQMessagePtr NewSimpleMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>()->NewSimpleMessage(data);</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// creates a message with a copy of the provided data, with the transport of the specified channel</span></div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  FairMQMessagePtr NewSimpleMessageFor(<span class="keyword">const</span> std::string& channel, <span class="keywordtype">int</span> index, <span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">return</span> GetChannel(channel, index).NewSimpleMessage(data);</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// creates unamanaged region with the default device transport</span></div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  FairMQUnmanagedRegionPtr NewUnmanagedRegion(Args&&... args)</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>()->CreateUnmanagedRegion(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// creates unmanaged region with the transport of the specified channel</span></div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  FairMQUnmanagedRegionPtr NewUnmanagedRegionFor(<span class="keyword">const</span> std::string& channel, <span class="keywordtype">int</span> index, Args&&... args)</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> GetChannel(channel, index).NewUnmanagedRegion(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">template</span><<span class="keyword">typename</span> ...Ts></div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  FairMQPollerPtr NewPoller(<span class="keyword">const</span> Ts&... inputs)</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  std::vector<std::string> chans{inputs...};</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">// if more than one channel provided, check compatibility</span></div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (chans.size() > 1)</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  fair::mq::Transport type = GetChannel(chans.at(0), 0).Transport()->GetType();</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1; i < chans.size(); ++i)</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (type != GetChannel(chans.at(i), 0).Transport()->GetType())</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  LOG(error) << <span class="stringliteral">"poller failed: different transports within same poller are not yet supported. Going to ERROR state."</span>;</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"poller failed: different transports within same poller are not yet supported."</span>);</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> GetChannel(chans.at(0), 0).Transport()->CreatePoller(<a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>, chans);</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  FairMQPollerPtr NewPoller(<span class="keyword">const</span> std::vector<FairMQChannel*>& channels)</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// if more than one channel provided, check compatibility</span></div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span> (channels.size() > 1)</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  {</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  fair::mq::Transport type = channels.at(0)->Transport()->GetType();</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1; i < channels.size(); ++i)</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span> (type != channels.at(i)->Transport()->GetType())</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  LOG(error) << <span class="stringliteral">"poller failed: different transports within same poller are not yet supported. Going to ERROR state."</span>;</div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"poller failed: different transports within same poller are not yet supported."</span>);</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> channels.at(0)->Transport()->CreatePoller(channels);</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  std::shared_ptr<FairMQTransportFactory> <a class="code" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a>(<span class="keyword">const</span> fair::mq::Transport transport);</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a>(<a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>& config);</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e"> 247</a></span>  <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>* <a class="code" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>;</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// overload to easily bind member functions</span></div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordtype">void</span> OnData(<span class="keyword">const</span> std::string& channelName, <span class="keywordtype">bool</span> (T::* memberFunction)(FairMQMessagePtr& msg, <span class="keywordtype">int</span> index))</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  fDataCallbacks = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  fMsgInputs.insert(std::make_pair(channelName, [<span class="keyword">this</span>, memberFunction](FairMQMessagePtr& msg, <span class="keywordtype">int</span> index)</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">return</span> (<span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>)->*memberFunction)(msg, index);</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }));</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  </div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (find(fInputChannelKeys.begin(), fInputChannelKeys.end(), channelName) == fInputChannelKeys.end())</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  fInputChannelKeys.push_back(channelName);</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordtype">void</span> OnData(<span class="keyword">const</span> std::string& channelName, InputMsgCallback callback)</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  fDataCallbacks = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  fMsgInputs.insert(make_pair(channelName, callback));</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">if</span> (find(fInputChannelKeys.begin(), fInputChannelKeys.end(), channelName) == fInputChannelKeys.end())</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  fInputChannelKeys.push_back(channelName);</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// overload to easily bind member functions</span></div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordtype">void</span> OnData(<span class="keyword">const</span> std::string& channelName, <span class="keywordtype">bool</span> (T::* memberFunction)(<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keywordtype">int</span> index))</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  fDataCallbacks = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  fMultipartInputs.insert(std::make_pair(channelName, [<span class="keyword">this</span>, memberFunction](<a class="code" href="classFairMQParts.html">FairMQParts</a>& parts, <span class="keywordtype">int</span> index)</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> (<span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>)->*memberFunction)(parts, index);</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }));</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span> (find(fInputChannelKeys.begin(), fInputChannelKeys.end(), channelName) == fInputChannelKeys.end())</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  fInputChannelKeys.push_back(channelName);</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordtype">void</span> OnData(<span class="keyword">const</span> std::string& channelName, InputMultipartCallback callback)</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  fDataCallbacks = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  fMultipartInputs.insert(make_pair(channelName, callback));</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (find(fInputChannelKeys.begin(), fInputChannelKeys.end(), channelName) == fInputChannelKeys.end())</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  fInputChannelKeys.push_back(channelName);</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classFairMQChannel.html">FairMQChannel</a>& GetChannel(<span class="keyword">const</span> std::string& channelName, <span class="keyword">const</span> <span class="keywordtype">int</span> index = 0)</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">try</span> {</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(channelName).at(index);</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  LOG(error) << <span class="stringliteral">"requested channel has not been configured? check channel names/configuration."</span>;</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  LOG(error) << <span class="stringliteral">"channel: "</span> << channelName << <span class="stringliteral">", index: "</span> << index;</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  LOG(error) << <span class="stringliteral">"out of range: "</span> << oor.what();</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">throw</span>;</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> RegisterChannelEndpoints() {}</div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordtype">bool</span> RegisterChannelEndpoint(<span class="keyword">const</span> std::string& channelName, uint16_t minNumSubChannels = 1, uint16_t maxNumSubChannels = 1)</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordtype">bool</span> ok = fChannelRegistry.insert(std::make_pair(channelName, std::make_pair(minNumSubChannels, maxNumSubChannels))).second;</div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">if</span> (!ok) {</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  LOG(warn) << <span class="stringliteral">"Registering channel: name already registered: \""</span> << channelName << <span class="stringliteral">"\""</span>;</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">return</span> ok;</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordtype">void</span> PrintRegisteredChannels()</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">if</span> (fChannelRegistry.size() < 1) {</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  LOGV(info, verylow) << <span class="stringliteral">"no channels registered."</span>;</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& c : fChannelRegistry) {</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  LOGV(info, verylow) << c.first << <span class="stringliteral">":"</span> << c.second.first << <span class="stringliteral">":"</span> << c.second.second;</div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordtype">void</span> SetId(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>) { <a class="code" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a> = id; }</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  std::string GetId() { <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a>; }</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> GetVersion()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fVersion; }</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordtype">void</span> SetNumIoThreads(<span class="keywordtype">int</span> numIoThreads) { <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="stringliteral">"io-threads"</span>, numIoThreads);}</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordtype">int</span> GetNumIoThreads()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">int</span>>(<span class="stringliteral">"io-threads"</span>, DefaultIOThreads); }</div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordtype">void</span> SetNetworkInterface(<span class="keyword">const</span> std::string& networkInterface) { <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="stringliteral">"network-interface"</span>, networkInterface); }</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  std::string GetNetworkInterface()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"network-interface"</span>, DefaultNetworkInterface); }</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordtype">void</span> SetDefaultTransport(<span class="keyword">const</span> std::string& name) { <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="stringliteral">"transport"</span>, name); }</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  std::string GetDefaultTransport()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"transport"</span>, DefaultTransportName); }</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordtype">void</span> SetInitTimeoutInS(<span class="keywordtype">int</span> initTimeoutInS) { <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="stringliteral">"init-timeout"</span>, initTimeoutInS); }</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordtype">int</span> GetInitTimeoutInS()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">int</span>>(<span class="stringliteral">"init-timeout"</span>, DefaultInitTimeout); }</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf"> 357</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a>(<span class="keyword">const</span> std::string& transport) { <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="stringliteral">"transport"</span>, transport); }</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a"> 359</a></span>  std::string <a class="code" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"transport"</span>, DefaultTransportName); }</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordtype">void</span> SetRawCmdLineArgs(<span class="keyword">const</span> std::vector<std::string>& args) { fRawCmdLineArgs = args; }</div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  std::vector<std::string> GetRawCmdLineArgs()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fRawCmdLineArgs; }</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  </div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">void</span> RunStateMachine()</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  fStateMachine.ProcessWork();</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  };</div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Rep, <span class="keyword">typename</span> Period></div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4"> 373</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a>(std::chrono::duration<Rep, Period> <span class="keyword">const</span>& duration)</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">return</span> !fStateMachine.WaitForPendingStateFor(std::chrono::duration_cast<std::chrono::milliseconds>(duration).count());</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  </div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0"> 379</a></span>  std::shared_ptr<FairMQTransportFactory> <a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>; </div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b"> 380</a></span>  std::unordered_map<fair::mq::Transport, std::shared_ptr<FairMQTransportFactory>> <a class="code" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a>; </div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547"> 383</a></span>  std::unordered_map<std::string, std::vector<FairMQChannel>> <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>; </div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff"> 384</a></span>  std::unique_ptr<fair::mq::ProgOptions> <a class="code" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a>; </div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d"> 385</a></span>  <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>* <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>; </div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">void</span> AddChannel(<span class="keyword">const</span> std::string& name, <a class="code" href="classFairMQChannel.html">FairMQChannel</a>&& channel)</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ac1e7828be92f2bb8419c26e8f5670c8c">AddChannel</a>(name, channel);</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f"> 393</a></span>  std::string <a class="code" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a>; </div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818"> 396</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a>() {}</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Bind() {}</div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  </div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Connect() {}</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98"> 403</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98">InitTask</a>() {}</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e"> 406</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e">Run</a>() {}</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719"> 409</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a>() {}</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284"> 412</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965"> 415</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a>() {}</div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c"> 418</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a>() {}</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305"> 421</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a>() {}</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5"> 429</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a>(<span class="keyword">const</span> fair::mq::Transition transition) { <span class="keywordflow">return</span> fStateMachine.ChangeState(transition); }</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea"> 435</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a>(<span class="keyword">const</span> std::string& transition) { <span class="keywordflow">return</span> fStateMachine.ChangeState(fair::mq::GetTransition(transition)); }</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d"> 438</a></span>  fair::mq::State <a class="code" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a>() { <span class="keywordflow">return</span> fStateQueue.WaitForNext(); }</div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206"> 441</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a>(fair::mq::State state) { fStateQueue.WaitForState(state); }</div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9"> 444</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a>(<span class="keyword">const</span> std::string& state) { <a class="code" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a>(fair::mq::GetState(state)); }</div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordtype">void</span> TransitionTo(<span class="keyword">const</span> fair::mq::State state);</div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452"> 454</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a>(<span class="keyword">const</span> std::string& key, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> fair::mq::State)> callback) { fStateMachine.SubscribeToStateChange(key, callback); }</div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73"> 457</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a>(<span class="keyword">const</span> std::string& key) { fStateMachine.UnsubscribeFromStateChange(key); }</div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  </div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4"> 464</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a>(<span class="keyword">const</span> std::string& key, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> fair::mq::Transition)> callback) { fStateMachine.SubscribeToNewTransition(key, callback); }</div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69"> 467</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a>(<span class="keyword">const</span> std::string& key) { fStateMachine.UnsubscribeFromNewTransition(key); }</div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c"> 470</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fStateMachine.NewStatePending(); }</div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  </div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd"> 473</a></span>  fair::mq::State <a class="code" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fStateMachine.GetCurrentState(); }</div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9"> 475</a></span>  std::string <a class="code" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fStateMachine.GetCurrentStateName(); }</div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a"> 479</a></span>  <span class="keyword">static</span> std::string <a class="code" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a>(<span class="keyword">const</span> fair::mq::State state) { <span class="keywordflow">return</span> fair::mq::GetStateName(state); }</div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52"> 482</a></span>  <span class="keyword">static</span> std::string <a class="code" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a>(<span class="keyword">const</span> fair::mq::Transition transition) { <span class="keywordflow">return</span> fair::mq::GetTransitionName(transition); }</div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  </div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultId = <span class="stringliteral">""</span>;</div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultIOThreads = 1;</div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultTransportName = <span class="stringliteral">"zeromq"</span>;</div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">static</span> constexpr fair::mq::Transport DefaultTransportType = fair::mq::Transport::ZMQ;</div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultNetworkInterface = <span class="stringliteral">"default"</span>;</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">int</span> DefaultInitTimeout = 120;</div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">static</span> constexpr uint64_t DefaultMaxRunTime = 0;</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">float</span> DefaultRate = 0.;</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* DefaultSession = <span class="stringliteral">"default"</span>;</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  fair::mq::Transport fDefaultTransportType; </div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classfair_1_1mq_1_1StateMachine.html">fair::mq::StateMachine</a> fStateMachine;</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordtype">void</span> InitWrapper();</div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordtype">void</span> BindWrapper();</div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordtype">void</span> ConnectWrapper();</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordtype">void</span> InitTaskWrapper();</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordtype">void</span> RunWrapper();</div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordtype">void</span> ResetTaskWrapper();</div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordtype">void</span> ResetWrapper();</div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordtype">void</span> UnblockTransports();</div>
|
||||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
|
||||
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordtype">void</span> Exit() {}</div>
|
||||
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  </div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordtype">void</span> AttachChannels(std::vector<FairMQChannel*>& chans);</div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordtype">bool</span> AttachChannel(<a class="code" href="classFairMQChannel.html">FairMQChannel</a>& ch);</div>
|
||||
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  </div>
|
||||
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordtype">void</span> HandleSingleChannelInput();</div>
|
||||
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordtype">void</span> HandleMultipleChannelInput();</div>
|
||||
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordtype">void</span> HandleMultipleTransportInput();</div>
|
||||
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordtype">void</span> PollForTransport(<span class="keyword">const</span> <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* factory, <span class="keyword">const</span> std::vector<std::string>& channelKeys);</div>
|
||||
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  </div>
|
||||
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordtype">bool</span> HandleMsgInput(<span class="keyword">const</span> std::string& chName, <span class="keyword">const</span> InputMsgCallback& callback, <span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordtype">bool</span> HandleMultipartInput(<span class="keyword">const</span> std::string& chName, <span class="keyword">const</span> InputMultipartCallback& callback, <span class="keywordtype">int</span> i);</div>
|
||||
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  </div>
|
||||
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  std::vector<FairMQChannel*> fUninitializedBindingChannels;</div>
|
||||
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  std::vector<FairMQChannel*> fUninitializedConnectingChannels;</div>
|
||||
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  </div>
|
||||
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordtype">bool</span> fDataCallbacks;</div>
|
||||
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  std::unordered_map<std::string, InputMsgCallback> fMsgInputs;</div>
|
||||
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  std::unordered_map<std::string, InputMultipartCallback> fMultipartInputs;</div>
|
||||
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  std::unordered_map<fair::mq::Transport, std::vector<std::string>> fMultitransportInputs;</div>
|
||||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  std::unordered_map<std::string, std::pair<uint16_t, uint16_t>> fChannelRegistry;</div>
|
||||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  std::vector<std::string> fInputChannelKeys;</div>
|
||||
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  std::mutex fMultitransportMutex;</div>
|
||||
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  std::atomic<bool> fMultitransportProceed;</div>
|
||||
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
|
||||
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> fVersion;</div>
|
||||
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordtype">float</span> fRate; </div>
|
||||
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  uint64_t fMaxRunRuntimeInS; </div>
|
||||
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordtype">int</span> fInitializationTimeoutInS;</div>
|
||||
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  std::vector<std::string> fRawCmdLineArgs;</div>
|
||||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  </div>
|
||||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classfair_1_1mq_1_1StateQueue.html">fair::mq::StateQueue</a> fStateQueue;</div>
|
||||
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
|
||||
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  std::mutex fTransitionMtx;</div>
|
||||
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordtype">bool</span> fTransitioning;</div>
|
||||
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> };</div>
|
||||
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
|
||||
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQDEVICE_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQDevice_html_af13f02da4e38ec68e23b7fab6677540a"><div class="ttname"><a href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">FairMQDevice::GetStateName</a></div><div class="ttdeci">static std::string GetStateName(const fair::mq::State state)</div><div class="ttdoc">Returns name of the given state as a string.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:479</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a7ba52b2fc3908c6bf1391eb5f27b03bd"><div class="ttname"><a href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">FairMQDevice::GetCurrentState</a></div><div class="ttdeci">fair::mq::State GetCurrentState() const</div><div class="ttdoc">Returns the current state.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:473</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3b90dbcf10552daab760629857e3ba3e"><div class="ttname"><a href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e">FairMQDevice::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdoc">Runs the device (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:406</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad35b073f8fa62d4559a1efbf38d5ded5"><div class="ttname"><a href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">FairMQDevice::ChangeState</a></div><div class="ttdeci">bool ChangeState(const fair::mq::Transition transition)</div><div class="ttdoc">Request a device state transition.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:429</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a9ca6f7041dd312096fce7d42ebd3586c"><div class="ttname"><a href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">FairMQDevice::ResetTask</a></div><div class="ttdeci">virtual void ResetTask()</div><div class="ttdoc">Resets the user task (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:418</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_acb7448dc5d278c6f51e3fcf7a49f367e"><div class="ttname"><a href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">FairMQDevice::GetConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * GetConfig() const</div><div class="ttdoc">Get pointer to the config.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:247</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a5b28e672fc4bdd82513fff138ff672d9"><div class="ttname"><a href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">FairMQDevice::WaitForState</a></div><div class="ttdeci">void WaitForState(const std::string &state)</div><div class="ttdoc">waits for the specified state to occur</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:444</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_afeaaeb9cb5ce8e0ac617600af8cfee52"><div class="ttname"><a href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">FairMQDevice::GetTransitionName</a></div><div class="ttdeci">static std::string GetTransitionName(const fair::mq::Transition transition)</div><div class="ttdoc">Returns name of the given transition as a string.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:482</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a9b4c9df42a95d0e428106244a9ae5c54"><div class="ttname"><a href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">FairMQDevice::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQParts &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:130</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_aaa9562c293ae1522975f171dfee00d69"><div class="ttname"><a href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">FairMQDevice::UnsubscribeFromNewTransition</a></div><div class="ttdeci">void UnsubscribeFromNewTransition(const std::string &key)</div><div class="ttdoc">Unsubscribe from state transitions.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:467</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad88707048f53c88ef0d6848deb962284"><div class="ttname"><a href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">FairMQDevice::ConditionalRun</a></div><div class="ttdeci">virtual bool ConditionalRun()</div><div class="ttdoc">Called during RUNNING state repeatedly until it returns false or device state changes.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:412</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ac1e7828be92f2bb8419c26e8f5670c8c"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ac1e7828be92f2bb8419c26e8f5670c8c">fair::mq::ProgOptions::AddChannel</a></div><div class="ttdeci">void AddChannel(const std::string &name, const FairMQChannel &channel)</div><div class="ttdoc">Takes the provided channel and creates properties based on it.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:357</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_aa4e0098922aaf987c2a27c10f4e04fbd"><div class="ttname"><a href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">FairMQDevice::operator=</a></div><div class="ttdeci">FairMQDevice operator=(const FairMQDevice &)=delete</div><div class="ttdoc">Assignment operator (disabled)</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a13141f54111f5f724b79143b4303a32f"><div class="ttname"><a href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">FairMQDevice::fId</a></div><div class="ttdeci">std::string fId</div><div class="ttdoc">Device ID.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:393</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1OngoingTransition_html"><div class="ttname"><a href="structfair_1_1mq_1_1OngoingTransition.html">fair::mq::OngoingTransition</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:46</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a2ff45ca40adf8ad8e046651f14a63f55"><div class="ttname"><a href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQParts &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:119</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a9bddc6f64f9c89b8ffe3670d91c06b29"><div class="ttname"><a href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">FairMQDevice::AddTransport</a></div><div class="ttdeci">std::shared_ptr< FairMQTransportFactory > AddTransport(const fair::mq::Transport transport)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.cxx:653</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_aab6d9bd4d57360a2b85ee3dec980395c"><div class="ttname"><a href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">FairMQDevice::Transport</a></div><div class="ttdeci">auto Transport() const -> FairMQTransportFactory *</div><div class="ttdoc">Getter for default transport factory.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:136</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a2a1a3157b7cb40ddc299b8865f3ef305"><div class="ttname"><a href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">FairMQDevice::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdoc">Resets the device (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:421</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a735b2684d4678eb959302911f12223eb"><div class="ttname"><a href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice::FairMQDevice</a></div><div class="ttdeci">FairMQDevice()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.cxx:58</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a1f040835106f6b4fa735ca3d57491f75"><div class="ttname"><a href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">FairMQChannel::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:270</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a272f25798b948992a560df32d405517c"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">fair::mq::ProgOptions::SetProperty</a></div><div class="ttdeci">void SetProperty(const std::string &key, T val)</div><div class="ttdoc">Set config property.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:136</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a8be266eb34c0aa683674570866a7804d"><div class="ttname"><a href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">FairMQChannel::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:260</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ae4e81b923615502666e5531f532ffc98"><div class="ttname"><a href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98">FairMQDevice::InitTask</a></div><div class="ttdeci">virtual void InitTask()</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:403</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1StateMachine_html"><div class="ttname"><a href="classfair_1_1mq_1_1StateMachine.html">fair::mq::StateMachine</a></div><div class="ttdef"><b>Definition:</b> StateMachine.h:29</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a363cf1b520148d9864fa800b4341b77f"><div class="ttname"><a href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">FairMQDevice::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:108</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a7b64f14a98d56fc575d13f7da0ad0a4d"><div class="ttname"><a href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">FairMQDevice::WaitForNextState</a></div><div class="ttdeci">fair::mq::State WaitForNextState()</div><div class="ttdoc">waits for the next state (any) to occur</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:438</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a02d4d28747aa58c9b67915e79520cc7b"><div class="ttname"><a href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">FairMQDevice::fTransports</a></div><div class="ttdeci">std::unordered_map< fair::mq::Transport, std::shared_ptr< FairMQTransportFactory > > fTransports</div><div class="ttdoc">Container for transports.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:380</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a7578022e18bc2b5b40ba56249cf23719"><div class="ttname"><a href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">FairMQDevice::PreRun</a></div><div class="ttdeci">virtual void PreRun()</div><div class="ttdoc">Called in the RUNNING state once before executing the Run()/ConditionalRun() method.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:409</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_aff6cf5db6dfc546431fc76548b8c09c4"><div class="ttname"><a href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">FairMQDevice::SubscribeToNewTransition</a></div><div class="ttdeci">void SubscribeToNewTransition(const std::string &key, std::function< void(const fair::mq::Transition)> callback)</div><div class="ttdoc">Subscribe with a callback to incoming state transitions.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:464</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ae3e16932f18d4966d51c906f1fe99d4a"><div class="ttname"><a href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">FairMQDevice::GetTransportName</a></div><div class="ttdeci">std::string GetTransportName() const</div><div class="ttdoc">Gets the default transport name.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:359</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ab2e07c7f823cbd0ea76ea6d1b7fdd1d4"><div class="ttname"><a href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">FairMQDevice::WaitFor</a></div><div class="ttdeci">bool WaitFor(std::chrono::duration< Rep, Period > const &duration)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:373</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac9458e96239d625186c7e5f9163ae7e2"><div class="ttname"><a href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:97</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a806cf5c241bf95571654cd327d6e76fe"><div class="ttname"><a href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice::FairMQDevice</a></div><div class="ttdeci">FairMQDevice(const FairMQDevice &)=delete</div><div class="ttdoc">Copy constructor (disabled)</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a56d2e72203b11fb4d636e22018456965"><div class="ttname"><a href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">FairMQDevice::PostRun</a></div><div class="ttdeci">virtual void PostRun()</div><div class="ttdoc">Called in the RUNNING state once after executing the Run()/ConditionalRun() method.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:415</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ae3c2c8524082bf37eafaa26030ee7452"><div class="ttname"><a href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">FairMQDevice::SubscribeToStateChange</a></div><div class="ttdeci">void SubscribeToStateChange(const std::string &key, std::function< void(const fair::mq::State)> callback)</div><div class="ttdoc">Subscribe with a callback to state changes.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:454</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a93c839b68f007bef8e66115efeed9d41"><div class="ttname"><a href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">FairMQDevice::LogSocketRates</a></div><div class="ttdeci">virtual void LogSocketRates()</div><div class="ttdoc">Outputs the socket transfer rates.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.cxx:678</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a51db444647edcea2464ca3c59d6bb818"><div class="ttname"><a href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">FairMQDevice::Init</a></div><div class="ttdeci">virtual void Init()</div><div class="ttdoc">Additional user initialization (can be overloaded in child classes). Prefer to use InitTask().</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:396</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac6e41280dd6cc8b217944a97fd9c548c"><div class="ttname"><a href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">FairMQDevice::NewStatePending</a></div><div class="ttdeci">bool NewStatePending() const</div><div class="ttdoc">Returns true if a new state has been requested, signaling the current handler to stop.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:470</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a09389ba6934645ca406a963ab5a60e1a"><div class="ttname"><a href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">FairMQDevice::~FairMQDevice</a></div><div class="ttdeci">virtual ~FairMQDevice()</div><div class="ttdoc">Default destructor.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.cxx:804</div></div>
|
||||
<div class="ttc" id="aclassFairMQMessage_html"><div class="ttname"><a href="classFairMQMessage.html">FairMQMessage</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:33</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a597c3c39cb45accfcf28e44071e4baff"><div class="ttname"><a href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">FairMQDevice::fInternalConfig</a></div><div class="ttdeci">std::unique_ptr< fair::mq::ProgOptions > fInternalConfig</div><div class="ttdoc">Internal program options configuration.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:384</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad1b949fc86f1028a1421972d43b37df9"><div class="ttname"><a href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">FairMQDevice::GetCurrentStateName</a></div><div class="ttdeci">std::string GetCurrentStateName() const</div><div class="ttdoc">Returns the name of the current state as a string.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:475</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a72517f8d1edab9b879d573fb09e8b5cf"><div class="ttname"><a href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">FairMQDevice::SetTransport</a></div><div class="ttdeci">void SetTransport(const std::string &transport)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:357</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_aa272062ccaff78a61d78ddfbefa25dec"><div class="ttname"><a href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">FairMQDevice::SetConfig</a></div><div class="ttdeci">void SetConfig(fair::mq::ProgOptions &config)</div><div class="ttdoc">Assigns config to the device.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.cxx:672</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a0f7f383786cd37df5bdd5769ac6521ea"><div class="ttname"><a href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">FairMQDevice::ChangeState</a></div><div class="ttdeci">bool ChangeState(const std::string &transition)</div><div class="ttdoc">Request a device state transition.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:435</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a40ef078cf464d17af1e8faeb69c61206"><div class="ttname"><a href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">FairMQDevice::WaitForState</a></div><div class="ttdeci">void WaitForState(fair::mq::State state)</div><div class="ttdoc">waits for the specified state to occur</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:441</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1StateQueue_html"><div class="ttname"><a href="classfair_1_1mq_1_1StateQueue.html">fair::mq::StateQueue</a></div><div class="ttdef"><b>Definition:</b> StateQueue.h:30</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a1c67c4cbd6140f35292b13e485f39ce0"><div class="ttname"><a href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">FairMQDevice::fTransportFactory</a></div><div class="ttdeci">std::shared_ptr< FairMQTransportFactory > fTransportFactory</div><div class="ttdoc">Default transport factory.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:379</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_af9b5b7a5469bff53feb6a1e000230e73"><div class="ttname"><a href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">FairMQDevice::UnsubscribeFromStateChange</a></div><div class="ttdeci">void UnsubscribeFromStateChange(const std::string &key)</div><div class="ttdoc">Unsubscribe from state changes.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:457</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
89
v1.4.33/FairMQLogger_8h_source.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQLogger.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQLogger.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQLOGGER_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQLOGGER_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairlogger/Logger.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQLOGGER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
195
v1.4.33/FairMQMerger_8h_source.html
Normal file
@@ -0,0 +1,195 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQMerger.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQMerger.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIRMQMERGER_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIRMQMERGER_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../FairMQPoller.h"</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../FairMQLogger.h"</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classFairMQMerger.html"> 25</a></span> <span class="keyword">class </span><a class="code" href="classFairMQMerger.html">FairMQMerger</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <a class="code" href="classFairMQMerger.html">FairMQMerger</a>()</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  : fMultipart(<span class="keyword">true</span>)</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  , fInChannelName(<span class="stringliteral">"data-in"</span>)</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  , fOutChannelName(<span class="stringliteral">"data-out"</span>)</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  {}</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  ~<a class="code" href="classFairMQMerger.html">FairMQMerger</a>() {}</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  std::string fInChannelName;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  std::string fOutChannelName;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQMerger.html#a77dc099209a49cec13493e1ec2953411">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  fInChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"in-channel"</span>);</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  fOutChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"out-channel"</span>);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classFairMQMerger.html#a77dc099209a49cec13493e1ec2953411"> 46</a></span>  </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">void</span> RegisterChannelEndpoints()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  RegisterChannelEndpoint(fInChannelName, 1, 10000);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  RegisterChannelEndpoint(fOutChannelName, 1, 1);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  PrintRegisteredChannels();</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQMerger.html#a7f38f3fe9b3bc3ab9122a40acbc4bdbc">Run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">int</span> numInputs = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fInChannelName).size();</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  std::vector<FairMQChannel*> chans;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classFairMQMerger.html#a7f38f3fe9b3bc3ab9122a40acbc4bdbc"> 61</a></span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& chan : <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fInChannelName)) {</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  chans.push_back(&chan);</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  FairMQPollerPtr poller(NewPoller(chans));</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  poller->Poll(100);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Loop over the data input channels.</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < numInputs; ++i) {</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// Check if the channel has data ready to be received.</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (poller->CheckInput(i)) {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> payload;</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(payload, fInChannelName, i) >= 0) {</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelName) < 0) {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  poller->Poll(100);</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Loop over the data input channels.</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < numInputs; ++i) {</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// Check if the channel has data ready to be received.</span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (poller->CheckInput(i)) {</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  FairMQMessagePtr payload(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(payload, fInChannelName, i) >= 0) {</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelName) < 0) {</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> };</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQMERGER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQMerger_html"><div class="ttname"><a href="classFairMQMerger.html">FairMQMerger</a></div><div class="ttdef"><b>Definition:</b> FairMQMerger.h:26</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQMerger_html_a7f38f3fe9b3bc3ab9122a40acbc4bdbc"><div class="ttname"><a href="classFairMQMerger.html#a7f38f3fe9b3bc3ab9122a40acbc4bdbc">FairMQMerger::Run</a></div><div class="ttdeci">void Run() override</div><div class="ttdoc">Runs the device (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQMerger.h:61</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a363cf1b520148d9864fa800b4341b77f"><div class="ttname"><a href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">FairMQDevice::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:108</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac9458e96239d625186c7e5f9163ae7e2"><div class="ttname"><a href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:97</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQMerger_html_a77dc099209a49cec13493e1ec2953411"><div class="ttname"><a href="classFairMQMerger.html#a77dc099209a49cec13493e1ec2953411">FairMQMerger::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQMerger.h:46</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac6e41280dd6cc8b217944a97fd9c548c"><div class="ttname"><a href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">FairMQDevice::NewStatePending</a></div><div class="ttdeci">bool NewStatePending() const</div><div class="ttdoc">Returns true if a new state has been requested, signaling the current handler to stop.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:470</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a1c67c4cbd6140f35292b13e485f39ce0"><div class="ttname"><a href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">FairMQDevice::fTransportFactory</a></div><div class="ttdeci">std::shared_ptr< FairMQTransportFactory > fTransportFactory</div><div class="ttdoc">Default transport factory.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:379</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
154
v1.4.33/FairMQMessage_8h_source.html
Normal file
@@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQMessage.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQMessage.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQMESSAGE_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQMESSAGE_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <cstddef></span> <span class="comment">// for size_t</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <memory></span> <span class="comment">// unique_ptr</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/Transports.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">using</span> fairmq_free_fn = void(<span class="keywordtype">void</span>* data, <span class="keywordtype">void</span>* hint);</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">class </span><a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>;</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1Alignment.html"> 24</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1Alignment.html">Alignment</a></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keywordtype">size_t</span> alignment;</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">explicit</span> <span class="keyword">operator</span> size_t()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> alignment; }</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> };</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classFairMQMessage.html"> 32</a></span> <span class="keyword">class </span><a class="code" href="classFairMQMessage.html">FairMQMessage</a></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classFairMQMessage.html">FairMQMessage</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classFairMQMessage.html">FairMQMessage</a>(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* factory) : fTransport(factory) {}</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rebuild() = 0;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rebuild(<a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a> alignment) = 0;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rebuild(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size) = 0;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rebuild(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a> alignment) = 0;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rebuild(<span class="keywordtype">void</span>* data, <span class="keyword">const</span> <span class="keywordtype">size_t</span> size, fairmq_free_fn* ffn, <span class="keywordtype">void</span>* hint = <span class="keyword">nullptr</span>) = 0;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* GetData() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> GetSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetUsedSize(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size) = 0;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">virtual</span> fair::mq::Transport GetType() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* GetTransport() { <span class="keywordflow">return</span> fTransport; }</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">void</span> SetTransport(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* transport) { fTransport = transport; }</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classFairMQMessage.html">FairMQMessage</a>& msg) = 0;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> ~<a class="code" href="classFairMQMessage.html">FairMQMessage</a>() {};</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* fTransport{<span class="keyword">nullptr</span>};</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">using</span> FairMQMessagePtr = std::unique_ptr<FairMQMessage>;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">using</span> Message = <a class="code" href="classFairMQMessage.html">FairMQMessage</a>;</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">using</span> MessagePtr = FairMQMessagePtr;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1MessageError.html"> 68</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1MessageError.html">MessageError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1MessageBadAlloc.html"> 69</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1MessageBadAlloc.html">MessageBadAlloc</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQMESSAGE_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1Alignment_html"><div class="ttname"><a href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:25</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1MessageError_html"><div class="ttname"><a href="structfair_1_1mq_1_1MessageError.html">fair::mq::MessageError</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:68</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1MessageBadAlloc_html"><div class="ttname"><a href="structfair_1_1mq_1_1MessageBadAlloc.html">fair::mq::MessageBadAlloc</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQMessage_html"><div class="ttname"><a href="classFairMQMessage.html">FairMQMessage</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:33</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
196
v1.4.33/FairMQMultiplier_8h_source.html
Normal file
@@ -0,0 +1,196 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQMultiplier.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQMultiplier.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQMULTIPLIER_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQMULTIPLIER_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classFairMQMultiplier.html"> 17</a></span> <span class="keyword">class </span><a class="code" href="classFairMQMultiplier.html">FairMQMultiplier</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <a class="code" href="classFairMQMultiplier.html">FairMQMultiplier</a>()</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  : fMultipart(<span class="keyword">true</span>)</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  , fNumOutputs(0)</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  , fInChannelName()</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  , fOutChannelNames()</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  {}</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  ~<a class="code" href="classFairMQMultiplier.html">FairMQMultiplier</a>() {}</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordtype">int</span> fNumOutputs;</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  std::string fInChannelName;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  std::vector<std::string> fOutChannelNames;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQMultiplier.html#ac53e028f43306dc8d32964c92c022f11">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  fInChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"in-channel"</span>);</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  fOutChannelNames = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::vector<std::string>>(<span class="stringliteral">"out-channel"</span>);</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  fNumOutputs = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelNames.at(0)).size();</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classFairMQMultiplier.html#ac53e028f43306dc8d32964c92c022f11"> 40</a></span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  OnData(fInChannelName, &FairMQMultiplier::HandleMultipartData);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  OnData(fInChannelName, &FairMQMultiplier::HandleSingleData);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">bool</span> HandleSingleData(std::unique_ptr<FairMQMessage>& payload, <span class="keywordtype">int</span>)</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < fOutChannelNames.size() - 1; ++i) { <span class="comment">// all except last channel</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j < <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelNames.at(i)).size(); ++j) { <span class="comment">// all subChannels in a channel</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  FairMQMessagePtr msgCopy(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  msgCopy->Copy(*payload);</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(msgCopy, fOutChannelNames.at(i), j);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lastChannelSize = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelNames.back()).size();</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < lastChannelSize - 1; ++i) { <span class="comment">// iterate over all except last subChannels of the last channel</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  FairMQMessagePtr msgCopy(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  msgCopy->Copy(*payload);</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(msgCopy, fOutChannelNames.back(), i);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelNames.back(), lastChannelSize - 1); <span class="comment">// send final message to last subChannel of last channel</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">bool</span> HandleMultipartData(<a class="code" href="classFairMQParts.html">FairMQParts</a>& payload, <span class="keywordtype">int</span>)</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < fOutChannelNames.size() - 1; ++i) { <span class="comment">// all except last channel</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j < <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelNames.at(i)).size(); ++j) { <span class="comment">// all subChannels in a channel</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> parts;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k < payload.<a class="code" href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3">Size</a>(); ++k) {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  FairMQMessagePtr msgCopy(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  msgCopy->Copy(payload.AtRef(k));</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  parts.<a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::move(msgCopy));</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(parts, fOutChannelNames.at(i), j);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lastChannelSize = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelNames.back()).size();</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < lastChannelSize - 1; ++i) { <span class="comment">// iterate over all except last subChannels of the last channel</span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> parts;</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k < payload.<a class="code" href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3">Size</a>(); ++k) {</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  FairMQMessagePtr msgCopy(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  msgCopy->Copy(payload.AtRef(k));</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  parts.<a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::move(msgCopy));</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(parts, fOutChannelNames.back(), i);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelNames.back(), lastChannelSize - 1); <span class="comment">// send final message to last subChannel of last channel</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> };</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQMULTIPLIER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_afaaa0eedc7a2c1e9fa6bec33dd1f3709"><div class="ttname"><a href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">FairMQParts::AddPart</a></div><div class="ttdeci">void AddPart(FairMQMessage *msg)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:48</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_a1e3301192a6e033b98b5abfd563a45f3"><div class="ttname"><a href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3">FairMQParts::Size</a></div><div class="ttdeci">int Size() const</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:91</div></div>
|
||||
<div class="ttc" id="aclassFairMQMultiplier_html"><div class="ttname"><a href="classFairMQMultiplier.html">FairMQMultiplier</a></div><div class="ttdef"><b>Definition:</b> FairMQMultiplier.h:18</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac9458e96239d625186c7e5f9163ae7e2"><div class="ttname"><a href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:97</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a1c67c4cbd6140f35292b13e485f39ce0"><div class="ttname"><a href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">FairMQDevice::fTransportFactory</a></div><div class="ttdeci">std::shared_ptr< FairMQTransportFactory > fTransportFactory</div><div class="ttdoc">Default transport factory.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:379</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<div class="ttc" id="aclassFairMQMultiplier_html_ac53e028f43306dc8d32964c92c022f11"><div class="ttname"><a href="classFairMQMultiplier.html#ac53e028f43306dc8d32964c92c022f11">FairMQMultiplier::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQMultiplier.h:40</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
162
v1.4.33/FairMQParts_8h_source.html
Normal file
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQParts.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQParts.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQPARTS_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQPARTS_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "FairMQTransportFactory.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "FairMQMessage.h"</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <memory></span> <span class="comment">// unique_ptr</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classFairMQParts.html"> 20</a></span> <span class="keyword">class </span><a class="code" href="classFairMQParts.html">FairMQParts</a></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">using</span> container = std::vector<std::unique_ptr<FairMQMessage>>;</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <a class="code" href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789">FairMQParts</a>() : fParts() {};</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789">FairMQParts</a>(<span class="keyword">const</span> <a class="code" href="classFairMQParts.html">FairMQParts</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789">FairMQParts</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>&& p) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789"> 33</a></span>  <a class="code" href="classFairMQParts.html">FairMQParts</a>& <a class="code" href="classFairMQParts.html#ac2b948ae748efc9f4ec7889e98b71278">operator=</a>(<span class="keyword">const</span> <a class="code" href="classFairMQParts.html">FairMQParts</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a188cc956da9212b48f2954f275781c66"> 35</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Ts></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789">FairMQParts</a>(Ts&&... messages) : fParts() { <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::forward<Ts>(messages)...); }</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classFairMQParts.html#a0ddccbfb56041b6b95c31838acb02e69">~FairMQParts</a>() {};</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classFairMQParts.html#ac2b948ae748efc9f4ec7889e98b71278"> 39</a></span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a6a6c543717d2b2de1b4eb3aef56c8634"> 42</a></span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(<a class="code" href="classFairMQMessage.html">FairMQMessage</a>* msg)</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a0ddccbfb56041b6b95c31838acb02e69"> 44</a></span>  fParts.push_back(std::unique_ptr<FairMQMessage>(msg));</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::unique_ptr<FairMQMessage>&& msg)</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  fParts.push_back(std::move(msg));</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a2202b446893b2b247f6e042e3fa7cba5"> 56</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Ts></div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::unique_ptr<FairMQMessage>&& first, Ts&&... remaining)</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::move(first));</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(std::forward<Ts>(remaining)...);</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">AddPart</a>(<a class="code" href="classFairMQParts.html">FairMQParts</a>&& other)</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  container parts = std::move(other.fParts);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& part : parts) {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  fParts.push_back(std::move(part));</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a413d07dfdd8bab388efca8eaa0d7d2a2"> 70</a></span>  }</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classFairMQMessage.html">FairMQMessage</a>& <a class="code" href="classFairMQParts.html#a309dcf53e2003614e8fed7cec4cfcb48">operator[]</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> index) { <span class="keywordflow">return</span> *(fParts[index]); }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::unique_ptr<FairMQMessage>& <a class="code" href="classFairMQParts.html#ac7fdb59ead8736caebaafd8861d6d7bd">At</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> index) { <span class="keywordflow">return</span> fParts.at(index); }</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a309dcf53e2003614e8fed7cec4cfcb48"> 80</a></span>  <span class="comment">// ref version</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classFairMQMessage.html">FairMQMessage</a>& AtRef(<span class="keyword">const</span> <span class="keywordtype">int</span> index) { <span class="keywordflow">return</span> *(fParts.at(index)); }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">int</span> <a class="code" href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3">Size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fParts.size(); }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  container fParts;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// forward container iterators</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">using</span> iterator = container::iterator;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3"> 91</a></span>  <span class="keyword">using</span> const_iterator = container::const_iterator;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">auto</span> begin() -> decltype(fParts.begin()) { <span class="keywordflow">return</span> fParts.begin(); }</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">auto</span> end() -> decltype(fParts.end()) { <span class="keywordflow">return</span> fParts.end(); }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">auto</span> cbegin() -> decltype(fParts.cbegin()) { <span class="keywordflow">return</span> fParts.cbegin(); }</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">auto</span> cend() -> decltype(fParts.cend()) { <span class="keywordflow">return</span> fParts.cend(); }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> };</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQPARTS_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQParts_html_a0ddccbfb56041b6b95c31838acb02e69"><div class="ttname"><a href="classFairMQParts.html#a0ddccbfb56041b6b95c31838acb02e69">FairMQParts::~FairMQParts</a></div><div class="ttdeci">~FairMQParts()</div><div class="ttdoc">Default destructor.</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:44</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_afaaa0eedc7a2c1e9fa6bec33dd1f3709"><div class="ttname"><a href="classFairMQParts.html#afaaa0eedc7a2c1e9fa6bec33dd1f3709">FairMQParts::AddPart</a></div><div class="ttdeci">void AddPart(FairMQMessage *msg)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:48</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_a309dcf53e2003614e8fed7cec4cfcb48"><div class="ttname"><a href="classFairMQParts.html#a309dcf53e2003614e8fed7cec4cfcb48">FairMQParts::operator[]</a></div><div class="ttdeci">FairMQMessage & operator[](const int index)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:80</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_ac7fdb59ead8736caebaafd8861d6d7bd"><div class="ttname"><a href="classFairMQParts.html#ac7fdb59ead8736caebaafd8861d6d7bd">FairMQParts::At</a></div><div class="ttdeci">std::unique_ptr< FairMQMessage > & At(const int index)</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:84</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_a1e3301192a6e033b98b5abfd563a45f3"><div class="ttname"><a href="classFairMQParts.html#a1e3301192a6e033b98b5abfd563a45f3">FairMQParts::Size</a></div><div class="ttdeci">int Size() const</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:91</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_ac2b948ae748efc9f4ec7889e98b71278"><div class="ttname"><a href="classFairMQParts.html#ac2b948ae748efc9f4ec7889e98b71278">FairMQParts::operator=</a></div><div class="ttdeci">FairMQParts & operator=(const FairMQParts &)=delete</div><div class="ttdoc">Assignment operator.</div></div>
|
||||
<div class="ttc" id="aclassFairMQMessage_html"><div class="ttname"><a href="classFairMQMessage.html">FairMQMessage</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:33</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html_aba451752ac510bd547a52b4ebb160789"><div class="ttname"><a href="classFairMQParts.html#aba451752ac510bd547a52b4ebb160789">FairMQParts::FairMQParts</a></div><div class="ttdeci">FairMQParts()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:33</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
116
v1.4.33/FairMQPoller_8h_source.html
Normal file
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQPoller.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQPoller.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQPOLLER_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQPOLLER_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classFairMQPoller.html"> 15</a></span> <span class="keyword">class </span><a class="code" href="classFairMQPoller.html">FairMQPoller</a></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Poll(<span class="keyword">const</span> <span class="keywordtype">int</span> timeout) = 0;</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CheckInput(<span class="keyword">const</span> <span class="keywordtype">int</span> index) = 0;</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CheckOutput(<span class="keyword">const</span> <span class="keywordtype">int</span> index) = 0;</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CheckInput(<span class="keyword">const</span> std::string& channelKey, <span class="keyword">const</span> <span class="keywordtype">int</span> index) = 0;</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CheckOutput(<span class="keyword">const</span> std::string& channelKey, <span class="keyword">const</span> <span class="keywordtype">int</span> index) = 0;</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">virtual</span> ~<a class="code" href="classFairMQPoller.html">FairMQPoller</a>() {};</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> };</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">using</span> FairMQPollerPtr = std::unique_ptr<FairMQPoller>;</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">using</span> Poller = <a class="code" href="classFairMQPoller.html">FairMQPoller</a>;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">using</span> PollerPtr = FairMQPollerPtr;</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PollerError.html"> 34</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1PollerError.html">PollerError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQPOLLER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PollerError_html"><div class="ttname"><a href="structfair_1_1mq_1_1PollerError.html">fair::mq::PollerError</a></div><div class="ttdef"><b>Definition:</b> FairMQPoller.h:34</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQPoller_html"><div class="ttname"><a href="classFairMQPoller.html">FairMQPoller</a></div><div class="ttdef"><b>Definition:</b> FairMQPoller.h:16</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
89
v1.4.33/FairMQProgOptions_8h_source.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/options/FairMQProgOptions.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_45e75480de90911e73132ad6d2c599a0.html">options</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQProgOptions.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQPROGOPTIONS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQPROGOPTIONS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/ProgOptions.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQPROGOPTIONS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
155
v1.4.33/FairMQProxy_8h_source.html
Normal file
@@ -0,0 +1,155 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQProxy.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQProxy.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIRMQPROXY_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIRMQPROXY_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classFairMQProxy.html"> 22</a></span> <span class="keyword">class </span><a class="code" href="classFairMQProxy.html">FairMQProxy</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <a class="code" href="classFairMQProxy.html">FairMQProxy</a>()</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  : fMultipart(<span class="keyword">true</span>)</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  , fInChannelName()</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  , fOutChannelName()</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  {}</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  ~<a class="code" href="classFairMQProxy.html">FairMQProxy</a>() {}</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  std::string fInChannelName;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  std::string fOutChannelName;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQProxy.html#afbd6c4533ea028693c66986863664c82">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  fInChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"in-channel"</span>);</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  fOutChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"out-channel"</span>);</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classFairMQProxy.html#afbd6c4533ea028693c66986863664c82"> 43</a></span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQProxy.html#a188a060d489a5a8e72a01f51d8866302">Run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> payload;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(payload, fInChannelName) >= 0) {</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classFairMQProxy.html#a188a060d489a5a8e72a01f51d8866302"> 50</a></span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelName) < 0) {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  FairMQMessagePtr payload(<a class="code" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a>->CreateMessage());</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(payload, fInChannelName) >= 0) {</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (<a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelName) < 0) {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  LOG(debug) << <span class="stringliteral">"Transfer interrupted"</span>;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQPROXY_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQProxy_html"><div class="ttname"><a href="classFairMQProxy.html">FairMQProxy</a></div><div class="ttdef"><b>Definition:</b> FairMQProxy.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQProxy_html_afbd6c4533ea028693c66986863664c82"><div class="ttname"><a href="classFairMQProxy.html#afbd6c4533ea028693c66986863664c82">FairMQProxy::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQProxy.h:43</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a363cf1b520148d9864fa800b4341b77f"><div class="ttname"><a href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">FairMQDevice::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:108</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac9458e96239d625186c7e5f9163ae7e2"><div class="ttname"><a href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:97</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac6e41280dd6cc8b217944a97fd9c548c"><div class="ttname"><a href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">FairMQDevice::NewStatePending</a></div><div class="ttdeci">bool NewStatePending() const</div><div class="ttdoc">Returns true if a new state has been requested, signaling the current handler to stop.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:470</div></div>
|
||||
<div class="ttc" id="aclassFairMQProxy_html_a188a060d489a5a8e72a01f51d8866302"><div class="ttname"><a href="classFairMQProxy.html#a188a060d489a5a8e72a01f51d8866302">FairMQProxy::Run</a></div><div class="ttdeci">void Run() override</div><div class="ttdoc">Runs the device (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQProxy.h:50</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a1c67c4cbd6140f35292b13e485f39ce0"><div class="ttname"><a href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">FairMQDevice::fTransportFactory</a></div><div class="ttdeci">std::shared_ptr< FairMQTransportFactory > fTransportFactory</div><div class="ttdoc">Default transport factory.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:379</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
227
v1.4.33/FairMQSink_8h_source.html
Normal file
@@ -0,0 +1,227 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQSink.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQSink.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIRMQSINK_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIRMQSINK_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../FairMQLogger.h"</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <fstream></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classFairMQSink.html"> 27</a></span> <span class="keyword">class </span><a class="code" href="classFairMQSink.html">FairMQSink</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="classFairMQSink.html">FairMQSink</a>()</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  : fMultipart(<span class="keyword">false</span>)</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  , fMaxIterations(0)</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  , fNumIterations(0)</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  , fMaxFileSize(0)</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  , fBytesWritten(0)</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  , fInChannelName()</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  , fOutFilename()</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  {}</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  ~<a class="code" href="classFairMQSink.html">FairMQSink</a>() {}</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint64_t fMaxIterations;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  uint64_t fNumIterations;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  uint64_t fMaxFileSize;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint64_t fBytesWritten;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  std::string fInChannelName;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  std::string fOutFilename;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  std::fstream fOutputFile;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQSink.html#a302ab7f0e7134ec1ad67b1252ddd9d2d">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  fMaxIterations = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><uint64_t>(<span class="stringliteral">"max-iterations"</span>);</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  fMaxFileSize = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><uint64_t>(<span class="stringliteral">"max-file-size"</span>);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  fInChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"in-channel"</span>);</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classFairMQSink.html#a302ab7f0e7134ec1ad67b1252ddd9d2d"> 58</a></span>  fOutFilename = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"out-filename"</span>);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  fBytesWritten = 0;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQSink.html#a1ed9fe63eb9fee891c70c85a0ec382f6">Run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// store the channel reference to avoid traversing the map on every loop iteration</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classFairMQChannel.html">FairMQChannel</a>& dataInChannel = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fInChannelName).at(0);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  LOG(info) << <span class="stringliteral">"Starting sink and expecting to receive "</span> << fMaxIterations << <span class="stringliteral">" messages."</span>;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classFairMQSink.html#a1ed9fe63eb9fee891c70c85a0ec382f6"> 69</a></span>  <span class="keyword">auto</span> tStart = std::chrono::high_resolution_clock::now();</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (!fOutFilename.empty()) {</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  LOG(debug) << <span class="stringliteral">"Incoming messages will be written to file: "</span> << fOutFilename;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (fMaxFileSize != 0) {</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  LOG(debug) << <span class="stringliteral">"File output will stop after "</span> << fMaxFileSize << <span class="stringliteral">" bytes"</span>;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  LOG(debug) << <span class="stringliteral">"ATTENTION: --max-file-size is 0 - output file will continue to grow until sink is stopped"</span>;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  fOutputFile.open(fOutFilename, std::ios::out | std::ios::binary);</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (!fOutputFile) {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  LOG(error) << <span class="stringliteral">"Could not open '"</span> << fOutFilename;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">throw</span> std::runtime_error(fair::mq::tools::ToString(<span class="stringliteral">"Could not open '"</span>, fOutFilename));</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">while</span> (!<a class="code" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>()) {</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classFairMQParts.html">FairMQParts</a> parts;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (dataInChannel.<a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(parts) < 0) {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (fOutputFile.is_open()) {</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& part : parts) {</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  WriteToFile(<span class="keyword">static_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(part->GetData()), part->GetSize());</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  FairMQMessagePtr msg(dataInChannel.NewMessage());</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (dataInChannel.<a class="code" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(msg) < 0) {</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (fOutputFile.is_open()) {</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  WriteToFile(<span class="keyword">static_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(msg->GetData()), msg->GetSize());</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span> (fMaxFileSize > 0 && fBytesWritten >= fMaxFileSize) {</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  LOG(info) << <span class="stringliteral">"Written "</span> << fBytesWritten << <span class="stringliteral">" bytes, stopping..."</span>;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (fMaxIterations > 0) {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (fNumIterations >= fMaxIterations) {</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  LOG(info) << <span class="stringliteral">"Configured maximum number of iterations reached."</span>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  fNumIterations++;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (fOutputFile.is_open()) {</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  fOutputFile.flush();</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  fOutputFile.close();</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">auto</span> tEnd = std::chrono::high_resolution_clock::now();</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">auto</span> ms = std::chrono::duration<double, std::milli>(tEnd - tStart).count();</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  LOG(info) << <span class="stringliteral">"Received "</span> << fNumIterations << <span class="stringliteral">" messages in "</span> << ms << <span class="stringliteral">"ms."</span>;</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (!fOutFilename.empty()) {</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">auto</span> sec = std::chrono::duration<double>(tEnd - tStart).count();</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  LOG(info) << <span class="stringliteral">"Closed '"</span> << fOutFilename << <span class="stringliteral">"' after writing "</span> << fBytesWritten << <span class="stringliteral">" bytes."</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  << <span class="stringliteral">"("</span> << (fBytesWritten / (1000. * 1000.)) / sec << <span class="stringliteral">" MB/s)"</span>;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  LOG(info) << <span class="stringliteral">"Leaving RUNNING state."</span>;</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">void</span> WriteToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* ptr, <span class="keywordtype">size_t</span> size)</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  fOutputFile.write(ptr, size);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span> (fOutputFile.bad()) {</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  LOG(error) << <span class="stringliteral">"failed writing to file"</span>;</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"failed writing to file"</span>);</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  fBytesWritten += size;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSINK_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQSink_html"><div class="ttname"><a href="classFairMQSink.html">FairMQSink</a></div><div class="ttdef"><b>Definition:</b> FairMQSink.h:28</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassFairMQSink_html_a302ab7f0e7134ec1ad67b1252ddd9d2d"><div class="ttname"><a href="classFairMQSink.html#a302ab7f0e7134ec1ad67b1252ddd9d2d">FairMQSink::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQSink.h:58</div></div>
|
||||
<div class="ttc" id="aclassFairMQParts_html"><div class="ttname"><a href="classFairMQParts.html">FairMQParts</a></div><div class="ttdoc">FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...</div><div class="ttdef"><b>Definition:</b> FairMQParts.h:21</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html_a1f040835106f6b4fa735ca3d57491f75"><div class="ttname"><a href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">FairMQChannel::Receive</a></div><div class="ttdeci">int64_t Receive(FairMQMessagePtr &msg, int rcvTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:270</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQSink_html_a1ed9fe63eb9fee891c70c85a0ec382f6"><div class="ttname"><a href="classFairMQSink.html#a1ed9fe63eb9fee891c70c85a0ec382f6">FairMQSink::Run</a></div><div class="ttdeci">void Run() override</div><div class="ttdoc">Runs the device (to be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQSink.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac6e41280dd6cc8b217944a97fd9c548c"><div class="ttname"><a href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">FairMQDevice::NewStatePending</a></div><div class="ttdeci">bool NewStatePending() const</div><div class="ttdoc">Returns true if a new state has been requested, signaling the current handler to stop.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:470</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
173
v1.4.33/FairMQSocket_8h_source.html
Normal file
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQSocket.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQSocket.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQSOCKET_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQSOCKET_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "FairMQMessage.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">class </span><a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>;</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">enum class</span> TransferCode : int</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  success = 0,</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  error = -1,</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  timeout = -2,</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  interrupted = -3</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> };</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classFairMQSocket.html"> 35</a></span> <span class="keyword">class </span><a class="code" href="classFairMQSocket.html">FairMQSocket</a></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classFairMQSocket.html">FairMQSocket</a>() {}</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="classFairMQSocket.html">FairMQSocket</a>(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* fac) : fTransport(fac) {}</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">virtual</span> std::string GetId() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Bind(<span class="keyword">const</span> std::string& address) = 0;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Connect(<span class="keyword">const</span> std::string& address) = 0;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">virtual</span> int64_t Send(FairMQMessagePtr& msg, <span class="keywordtype">int</span> timeout = -1) = 0;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">virtual</span> int64_t Receive(FairMQMessagePtr& msg, <span class="keywordtype">int</span> timeout = -1) = 0;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">virtual</span> int64_t Send(std::vector<std::unique_ptr<FairMQMessage>>& msgVec, <span class="keywordtype">int</span> timeout = -1) = 0;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">virtual</span> int64_t Receive(std::vector<std::unique_ptr<FairMQMessage>>& msgVec, <span class="keywordtype">int</span> timeout = -1) = 0;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Close() = 0;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetOption(<span class="keyword">const</span> std::string& option, <span class="keyword">const</span> <span class="keywordtype">void</span>* value, <span class="keywordtype">size_t</span> valueSize) = 0;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetOption(<span class="keyword">const</span> std::string& option, <span class="keywordtype">void</span>* value, <span class="keywordtype">size_t</span>* valueSize) = 0;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classFairMQSocket.html#ac6a51dd23b0e3b01daf8bbc5b087ed78"> 59</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQSocket.html#ac6a51dd23b0e3b01daf8bbc5b087ed78">Events</a>(uint32_t* events) = 0;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetLinger(<span class="keyword">const</span> <span class="keywordtype">int</span> value) = 0;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetLinger() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSndBufSize(<span class="keyword">const</span> <span class="keywordtype">int</span> value) = 0;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSndBufSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetRcvBufSize(<span class="keyword">const</span> <span class="keywordtype">int</span> value) = 0;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetRcvBufSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSndKernelSize(<span class="keyword">const</span> <span class="keywordtype">int</span> value) = 0;</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSndKernelSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetRcvKernelSize(<span class="keyword">const</span> <span class="keywordtype">int</span> value) = 0;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetRcvKernelSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetBytesTx() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetBytesRx() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetMessagesTx() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetMessagesRx() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* GetTransport() { <span class="keywordflow">return</span> fTransport; }</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordtype">void</span> SetTransport(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* transport) { fTransport = transport; }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">virtual</span> ~<a class="code" href="classFairMQSocket.html">FairMQSocket</a>() {};</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* fTransport{<span class="keyword">nullptr</span>};</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">using</span> FairMQSocketPtr = std::unique_ptr<FairMQSocket>;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">using</span> Socket = <a class="code" href="classFairMQSocket.html">FairMQSocket</a>;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">using</span> SocketPtr = FairMQSocketPtr;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1SocketError.html"> 92</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1SocketError.html">SocketError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSOCKET_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQSocket_html"><div class="ttname"><a href="classFairMQSocket.html">FairMQSocket</a></div><div class="ttdef"><b>Definition:</b> FairMQSocket.h:36</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1SocketError_html"><div class="ttname"><a href="structfair_1_1mq_1_1SocketError.html">fair::mq::SocketError</a></div><div class="ttdef"><b>Definition:</b> FairMQSocket.h:92</div></div>
|
||||
<div class="ttc" id="aclassFairMQSocket_html_ac6a51dd23b0e3b01daf8bbc5b087ed78"><div class="ttname"><a href="classFairMQSocket.html#ac6a51dd23b0e3b01daf8bbc5b087ed78">FairMQSocket::Events</a></div><div class="ttdeci">virtual void Events(uint32_t *events)=0</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
144
v1.4.33/FairMQSplitter_8h_source.html
Normal file
@@ -0,0 +1,144 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/devices/FairMQSplitter.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b4ab45277bc4c2ae49385465b8ac74b3.html">devices</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQSplitter.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIRMQSPLITTER_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIRMQSPLITTER_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "FairMQDevice.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classFairMQSplitter.html"> 22</a></span> <span class="keyword">class </span><a class="code" href="classFairMQSplitter.html">FairMQSplitter</a> : <span class="keyword">public</span> <a class="code" href="classFairMQDevice.html">FairMQDevice</a></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <a class="code" href="classFairMQSplitter.html">FairMQSplitter</a>()</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  : fMultipart(<span class="keyword">true</span>)</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  , fNumOutputs(0)</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  , fDirection(0)</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  , fInChannelName()</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  , fOutChannelName()</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  {}</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  ~<a class="code" href="classFairMQSplitter.html">FairMQSplitter</a>() {}</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">bool</span> fMultipart;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">int</span> fNumOutputs;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">int</span> fDirection;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  std::string fInChannelName;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  std::string fOutChannelName;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">void</span> <a class="code" href="classFairMQSplitter.html#a2d6551c9e65460042b9fb45295ba1390">InitTask</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  fMultipart = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><<span class="keywordtype">bool</span>>(<span class="stringliteral">"multipart"</span>);</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  fInChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"in-channel"</span>);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  fOutChannelName = <a class="code" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a>-><a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><std::string>(<span class="stringliteral">"out-channel"</span>);</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  fNumOutputs = <a class="code" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a>.at(fOutChannelName).size();</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classFairMQSplitter.html#a2d6551c9e65460042b9fb45295ba1390"> 47</a></span>  fDirection = 0;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (fMultipart) {</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  OnData(fInChannelName, &FairMQSplitter::HandleData<FairMQParts>);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  OnData(fInChannelName, &FairMQSplitter::HandleData<FairMQMessagePtr>);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">bool</span> HandleData(T& payload, <span class="keywordtype">int</span>)</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(payload, fOutChannelName, fDirection);</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (++fDirection >= fNumOutputs) {</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  fDirection = 0;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> };</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSPLITTER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ad6e090504ceef5799b6f85b136d1e547"><div class="ttname"><a href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">FairMQDevice::fChannels</a></div><div class="ttdeci">std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels</div><div class="ttdoc">Device channels.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:383</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassFairMQSplitter_html"><div class="ttname"><a href="classFairMQSplitter.html">FairMQSplitter</a></div><div class="ttdef"><b>Definition:</b> FairMQSplitter.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQSplitter_html_a2d6551c9e65460042b9fb45295ba1390"><div class="ttname"><a href="classFairMQSplitter.html#a2d6551c9e65460042b9fb45295ba1390">FairMQSplitter::InitTask</a></div><div class="ttdeci">void InitTask() override</div><div class="ttdoc">Task initialization (can be overloaded in child classes)</div><div class="ttdef"><b>Definition:</b> FairMQSplitter.h:47</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ac9458e96239d625186c7e5f9163ae7e2"><div class="ttname"><a href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">FairMQDevice::Send</a></div><div class="ttdeci">int64_t Send(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:97</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a3496403c6124440185111ba3b49fb80d"><div class="ttname"><a href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">FairMQDevice::fConfig</a></div><div class="ttdeci">fair::mq::ProgOptions * fConfig</div><div class="ttdoc">Pointer to config (internal or external)</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:385</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
231
v1.4.33/FairMQTransportFactory_8h_source.html
Normal file
@@ -0,0 +1,231 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQTransportFactory.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQTransportFactory.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQTRANSPORTFACTORY_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQTRANSPORTFACTORY_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <FairMQMessage.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <FairMQPoller.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <FairMQSocket.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <FairMQUnmanagedRegion.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/MemoryResources.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/Transports.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <memory></span> <span class="comment">// shared_ptr</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <cstddef></span> <span class="comment">// size_t</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span><a class="code" href="classFairMQChannel.html">FairMQChannel</a>;</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a> { <span class="keyword">class </span>ProgOptions; }</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html"> 29</a></span> <span class="keyword">class </span><a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> std::string fkId;</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">fair::mq::ChannelResource</a> fMemoryResource{<span class="keyword">this</span>};</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classFairMQTransportFactory.html#aafbb0f83fc97a50e96c7e6616bc215c9">FairMQTransportFactory</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">auto</span> GetId() <span class="keyword">const</span> -> <span class="keyword">const</span> std::string { <span class="keywordflow">return</span> fkId; };</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a4be5580ac0bb62cd891fc1f13f1b8a58"> 46</a></span>  <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">fair::mq::ChannelResource</a>* <a class="code" href="classFairMQTransportFactory.html#a4be5580ac0bb62cd891fc1f13f1b8a58">GetMemoryResource</a>() { <span class="keywordflow">return</span> &fMemoryResource; }</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">operator</span> <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">fair::mq::ChannelResource</a>*() { <span class="keywordflow">return</span> &fMemoryResource; }</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696"> 51</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>() = 0;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a9f794f9a073aaa6e0b2b623ad984a264"> 55</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#a9f794f9a073aaa6e0b2b623ad984a264">CreateMessage</a>(<a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a> alignment) = 0;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a7cfe2327b906688096bea8854970c578"> 59</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#a7cfe2327b906688096bea8854970c578">CreateMessage</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size) = 0;</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#ae4142711c309070b490d0e025eede5ab"> 64</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#ae4142711c309070b490d0e025eede5ab">CreateMessage</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <a class="code" href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a> alignment) = 0;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a9e3c89db0c9cd0414745d14dee0300d4"> 71</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#a9e3c89db0c9cd0414745d14dee0300d4">CreateMessage</a>(<span class="keywordtype">void</span>* data, <span class="keyword">const</span> <span class="keywordtype">size_t</span> size, fairmq_free_fn* ffn, <span class="keywordtype">void</span>* hint = <span class="keyword">nullptr</span>) = 0;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a8b427b161f32f83047885170457f98e6"> 77</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classFairMQTransportFactory.html#a8b427b161f32f83047885170457f98e6">CreateMessage</a>(FairMQUnmanagedRegionPtr& unmanagedRegion, <span class="keywordtype">void</span>* data, <span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <span class="keywordtype">void</span>* hint = 0) = 0;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#ab38e3409319ed0d9055078a6e5bb3ef8"> 80</a></span>  <span class="keyword">virtual</span> FairMQSocketPtr <a class="code" href="classFairMQTransportFactory.html#ab38e3409319ed0d9055078a6e5bb3ef8">CreateSocket</a>(<span class="keyword">const</span> std::string& type, <span class="keyword">const</span> std::string& name) = 0;</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a6de98e1652b6ad68e4d78dd31eea40cc"> 83</a></span>  <span class="keyword">virtual</span> FairMQPollerPtr <a class="code" href="classFairMQTransportFactory.html#a6de98e1652b6ad68e4d78dd31eea40cc">CreatePoller</a>(<span class="keyword">const</span> std::vector<FairMQChannel>& channels) <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#ae692f2e00d9804a5431b719e3004da59"> 85</a></span>  <span class="keyword">virtual</span> FairMQPollerPtr <a class="code" href="classFairMQTransportFactory.html#ae692f2e00d9804a5431b719e3004da59">CreatePoller</a>(<span class="keyword">const</span> std::vector<FairMQChannel*>& channels) <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a7fd308e4e5203814ca7012ef526d3fdf"> 87</a></span>  <span class="keyword">virtual</span> FairMQPollerPtr <a class="code" href="classFairMQTransportFactory.html#a7fd308e4e5203814ca7012ef526d3fdf">CreatePoller</a>(<span class="keyword">const</span> std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap, <span class="keyword">const</span> std::vector<std::string>& channelList) <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#ad1164b33d22d3b47fe3b1a45a743be5c"> 95</a></span>  <span class="keyword">virtual</span> FairMQUnmanagedRegionPtr <a class="code" href="classFairMQTransportFactory.html#ad1164b33d22d3b47fe3b1a45a743be5c">CreateUnmanagedRegion</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, FairMQRegionCallback callback = <span class="keyword">nullptr</span>, <span class="keyword">const</span> std::string& path = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> flags = 0) = 0;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">virtual</span> FairMQUnmanagedRegionPtr <a class="code" href="classFairMQTransportFactory.html#ad1164b33d22d3b47fe3b1a45a743be5c">CreateUnmanagedRegion</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, FairMQRegionBulkCallback callback = <span class="keyword">nullptr</span>, <span class="keyword">const</span> std::string& path = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> flags = 0) = 0;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#af71fd47062ac63a595df93c459421724"> 104</a></span>  <span class="keyword">virtual</span> FairMQUnmanagedRegionPtr <a class="code" href="classFairMQTransportFactory.html#af71fd47062ac63a595df93c459421724">CreateUnmanagedRegion</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> int64_t userFlags, FairMQRegionCallback callback = <span class="keyword">nullptr</span>, <span class="keyword">const</span> std::string& path = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> flags = 0) = 0;</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">virtual</span> FairMQUnmanagedRegionPtr <a class="code" href="classFairMQTransportFactory.html#ad1164b33d22d3b47fe3b1a45a743be5c">CreateUnmanagedRegion</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> int64_t userFlags, FairMQRegionBulkCallback callback = <span class="keyword">nullptr</span>, <span class="keyword">const</span> std::string& path = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> flags = 0) = 0;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a812d5a69199f1fe78a940c6767b89a84"> 109</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQTransportFactory.html#a812d5a69199f1fe78a940c6767b89a84">SubscribeToRegionEvents</a>(FairMQRegionEventCallback callback) = 0;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a98280df275ac2da0d5c48c07259cd6a9"> 112</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classFairMQTransportFactory.html#a98280df275ac2da0d5c48c07259cd6a9">SubscribedToRegionEvents</a>() = 0;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a10a586ccf137d371fded40035d16ac93"> 114</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFairMQTransportFactory.html#a10a586ccf137d371fded40035d16ac93">UnsubscribeFromRegionEvents</a>() = 0;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">virtual</span> std::vector<FairMQRegionInfo> GetRegionInfo() = 0;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classFairMQTransportFactory.html#a5c62d8792229cf3eec74d75e15cc6cf4"> 119</a></span>  <span class="keyword">virtual</span> fair::mq::Transport <a class="code" href="classFairMQTransportFactory.html#a5c62d8792229cf3eec74d75e15cc6cf4">GetType</a>() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Interrupt() = 0;</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Resume() = 0;</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Reset() = 0;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">virtual</span> ~<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>() {};</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">static</span> <span class="keyword">auto</span> CreateTransportFactory(<span class="keyword">const</span> std::string& type, <span class="keyword">const</span> std::string& <span class="keywordtype">id</span> = <span class="stringliteral">""</span>, <span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>* config = <span class="keyword">nullptr</span>) -> std::shared_ptr<FairMQTransportFactory>;</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> FairMQNoCleanup(<span class="keywordtype">void</span>* <span class="comment">/*data*/</span>, <span class="keywordtype">void</span>* <span class="comment">/*obj*/</span>)</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> FairMQSimpleMsgCleanup(<span class="keywordtype">void</span>* <span class="comment">/*data*/</span>, <span class="keywordtype">void</span>* obj)</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">delete</span> <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(obj);</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  FairMQMessagePtr NewSimpleMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// todo: is_trivially_copyable not available on gcc < 5, workaround?</span></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// static_assert(std::is_trivially_copyable<T>::value, "The argument type for NewSimpleMessage has to be trivially copyable!");</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  T* dataCopy = <span class="keyword">new</span> T(data);</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>(dataCopy, <span class="keyword">sizeof</span>(T), FairMQSimpleMsgCleanup<T>, dataCopy);</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  FairMQMessagePtr NewSimpleMessage(<span class="keyword">const</span> <span class="keywordtype">char</span>(&data)[N])</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  std::string* msgStr = <span class="keyword">new</span> std::string(data);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>(<span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(msgStr->c_str()), msgStr->length(), FairMQSimpleMsgCleanup<std::string>, msgStr);</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  FairMQMessagePtr NewSimpleMessage(<span class="keyword">const</span> std::string& str)</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  std::string* msgStr = <span class="keyword">new</span> std::string(str);</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>(<span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(msgStr->c_str()), msgStr->length(), FairMQSimpleMsgCleanup<std::string>, msgStr);</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  FairMQMessagePtr NewStaticMessage(<span class="keyword">const</span> T& data)</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>(data, <span class="keyword">sizeof</span>(T), FairMQNoCleanup, <span class="keyword">nullptr</span>);</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  FairMQMessagePtr NewStaticMessage(<span class="keyword">const</span> std::string& str)</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  {</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> <a class="code" href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">CreateMessage</a>(<span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(str.c_str()), str.length(), FairMQNoCleanup, <span class="keyword">nullptr</span>);</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  }</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> };</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">using</span> TransportFactory = <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>;</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1TransportFactoryError.html"> 178</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1TransportFactoryError.html">TransportFactoryError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQTRANSPORTFACTORY_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1Alignment_html"><div class="ttname"><a href="structfair_1_1mq_1_1Alignment.html">fair::mq::Alignment</a></div><div class="ttdef"><b>Definition:</b> FairMQMessage.h:25</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a10a586ccf137d371fded40035d16ac93"><div class="ttname"><a href="classFairMQTransportFactory.html#a10a586ccf137d371fded40035d16ac93">FairMQTransportFactory::UnsubscribeFromRegionEvents</a></div><div class="ttdeci">virtual void UnsubscribeFromRegionEvents()=0</div><div class="ttdoc">Unsubscribe from region events.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a9f794f9a073aaa6e0b2b623ad984a264"><div class="ttname"><a href="classFairMQTransportFactory.html#a9f794f9a073aaa6e0b2b623ad984a264">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage(fair::mq::Alignment alignment)=0</div><div class="ttdoc">Create empty FairMQMessage (for receiving), align received buffer to specified alignment.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a7fd308e4e5203814ca7012ef526d3fdf"><div class="ttname"><a href="classFairMQTransportFactory.html#a7fd308e4e5203814ca7012ef526d3fdf">FairMQTransportFactory::CreatePoller</a></div><div class="ttdeci">virtual FairMQPollerPtr CreatePoller(const std::unordered_map< std::string, std::vector< FairMQChannel >> &channelsMap, const std::vector< std::string > &channelList) const =0</div><div class="ttdoc">Create a poller for specific channels (all subchannels)</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a7cfe2327b906688096bea8854970c578"><div class="ttname"><a href="classFairMQTransportFactory.html#a7cfe2327b906688096bea8854970c578">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage(const size_t size)=0</div><div class="ttdoc">Create new FairMQMessage of specified size.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_ae4142711c309070b490d0e025eede5ab"><div class="ttname"><a href="classFairMQTransportFactory.html#ae4142711c309070b490d0e025eede5ab">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage(const size_t size, fair::mq::Alignment alignment)=0</div><div class="ttdoc">Create new FairMQMessage of specified size and alignment.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a9e3c89db0c9cd0414745d14dee0300d4"><div class="ttname"><a href="classFairMQTransportFactory.html#a9e3c89db0c9cd0414745d14dee0300d4">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage(void *data, const size_t size, fairmq_free_fn *ffn, void *hint=nullptr)=0</div><div class="ttdoc">Create new FairMQMessage with user provided buffer and size.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_aafbb0f83fc97a50e96c7e6616bc215c9"><div class="ttname"><a href="classFairMQTransportFactory.html#aafbb0f83fc97a50e96c7e6616bc215c9">FairMQTransportFactory::FairMQTransportFactory</a></div><div class="ttdeci">FairMQTransportFactory(const std::string &id)</div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.cxx:26</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a8b427b161f32f83047885170457f98e6"><div class="ttname"><a href="classFairMQTransportFactory.html#a8b427b161f32f83047885170457f98e6">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage(FairMQUnmanagedRegionPtr &unmanagedRegion, void *data, const size_t size, void *hint=0)=0</div><div class="ttdoc">create a message with the buffer located within the corresponding unmanaged region</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a4be5580ac0bb62cd891fc1f13f1b8a58"><div class="ttname"><a href="classFairMQTransportFactory.html#a4be5580ac0bb62cd891fc1f13f1b8a58">FairMQTransportFactory::GetMemoryResource</a></div><div class="ttdeci">fair::mq::ChannelResource * GetMemoryResource()</div><div class="ttdoc">Get a pointer to the associated polymorphic memory resource.</div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:46</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_ab38e3409319ed0d9055078a6e5bb3ef8"><div class="ttname"><a href="classFairMQTransportFactory.html#ab38e3409319ed0d9055078a6e5bb3ef8">FairMQTransportFactory::CreateSocket</a></div><div class="ttdeci">virtual FairMQSocketPtr CreateSocket(const std::string &type, const std::string &name)=0</div><div class="ttdoc">Create a socket.</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ChannelResource_html"><div class="ttname"><a href="classfair_1_1mq_1_1ChannelResource.html">fair::mq::ChannelResource</a></div><div class="ttdef"><b>Definition:</b> MemoryResources.h:58</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a5c62d8792229cf3eec74d75e15cc6cf4"><div class="ttname"><a href="classFairMQTransportFactory.html#a5c62d8792229cf3eec74d75e15cc6cf4">FairMQTransportFactory::GetType</a></div><div class="ttdeci">virtual fair::mq::Transport GetType() const =0</div><div class="ttdoc">Get transport type.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_af71fd47062ac63a595df93c459421724"><div class="ttname"><a href="classFairMQTransportFactory.html#af71fd47062ac63a595df93c459421724">FairMQTransportFactory::CreateUnmanagedRegion</a></div><div class="ttdeci">virtual FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, const int64_t userFlags, FairMQRegionCallback callback=nullptr, const std::string &path="", int flags=0)=0</div><div class="ttdoc">Create new UnmanagedRegion.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_ae692f2e00d9804a5431b719e3004da59"><div class="ttname"><a href="classFairMQTransportFactory.html#ae692f2e00d9804a5431b719e3004da59">FairMQTransportFactory::CreatePoller</a></div><div class="ttdeci">virtual FairMQPollerPtr CreatePoller(const std::vector< FairMQChannel * > &channels) const =0</div><div class="ttdoc">Create a poller for specific channels.</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a6de98e1652b6ad68e4d78dd31eea40cc"><div class="ttname"><a href="classFairMQTransportFactory.html#a6de98e1652b6ad68e4d78dd31eea40cc">FairMQTransportFactory::CreatePoller</a></div><div class="ttdeci">virtual FairMQPollerPtr CreatePoller(const std::vector< FairMQChannel > &channels) const =0</div><div class="ttdoc">Create a poller for a single channel (all subchannels)</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_ad1164b33d22d3b47fe3b1a45a743be5c"><div class="ttname"><a href="classFairMQTransportFactory.html#ad1164b33d22d3b47fe3b1a45a743be5c">FairMQTransportFactory::CreateUnmanagedRegion</a></div><div class="ttdeci">virtual FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback=nullptr, const std::string &path="", int flags=0)=0</div><div class="ttdoc">Create new UnmanagedRegion.</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_abb42782c89c1b412051f4c448fbb7696"><div class="ttname"><a href="classFairMQTransportFactory.html#abb42782c89c1b412051f4c448fbb7696">FairMQTransportFactory::CreateMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr CreateMessage()=0</div><div class="ttdoc">Create empty FairMQMessage (for receiving)</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a812d5a69199f1fe78a940c6767b89a84"><div class="ttname"><a href="classFairMQTransportFactory.html#a812d5a69199f1fe78a940c6767b89a84">FairMQTransportFactory::SubscribeToRegionEvents</a></div><div class="ttdeci">virtual void SubscribeToRegionEvents(FairMQRegionEventCallback callback)=0</div><div class="ttdoc">Subscribe to region events (creation, destruction, ...)</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1TransportFactoryError_html"><div class="ttname"><a href="structfair_1_1mq_1_1TransportFactoryError.html">fair::mq::TransportFactoryError</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:178</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html_a98280df275ac2da0d5c48c07259cd6a9"><div class="ttname"><a href="classFairMQTransportFactory.html#a98280df275ac2da0d5c48c07259cd6a9">FairMQTransportFactory::SubscribedToRegionEvents</a></div><div class="ttdeci">virtual bool SubscribedToRegionEvents()=0</div><div class="ttdoc">Check if there is an active subscription to region events.</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
201
v1.4.33/FairMQUnmanagedRegion_8h_source.html
Normal file
@@ -0,0 +1,201 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/FairMQUnmanagedRegion.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQUnmanagedRegion.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQUNMANAGEDREGION_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQUNMANAGEDREGION_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <cstddef></span> <span class="comment">// size_t</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <cstdint></span> <span class="comment">// uint32_t</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <memory></span> <span class="comment">// std::unique_ptr</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <functional></span> <span class="comment">// std::function</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <ostream></span> <span class="comment">// std::ostream</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">class </span><a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>;</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">enum class</span> FairMQRegionEvent : int</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  created,</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  destroyed,</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  local_only</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> };</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structFairMQRegionInfo.html"> 28</a></span> <span class="keyword">struct </span><a class="code" href="structFairMQRegionInfo.html">FairMQRegionInfo</a></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="structFairMQRegionInfo.html">FairMQRegionInfo</a>()</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  : managed(<span class="keyword">true</span>)</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  , id(0)</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  , ptr(<span class="keyword">nullptr</span>)</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  , size(0)</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  , flags(0)</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  , event(FairMQRegionEvent::created)</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {}</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="structFairMQRegionInfo.html">FairMQRegionInfo</a>(<span class="keywordtype">bool</span> _managed, uint64_t _id, <span class="keywordtype">void</span>* _ptr, <span class="keywordtype">size_t</span> _size, int64_t _flags, FairMQRegionEvent _event)</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  : managed(_managed)</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  , id(_id)</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  , ptr(_ptr)</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  , size(_size)</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  , flags(_flags)</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  , event(_event)</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {}</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">bool</span> managed; <span class="comment">// managed/unmanaged</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  uint64_t id; <span class="comment">// id of the region</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">void</span>* ptr; <span class="comment">// pointer to the start of the region</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">size_t</span> size; <span class="comment">// region size</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  int64_t flags; <span class="comment">// custom flags set by the creator</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  FairMQRegionEvent event;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> };</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structFairMQRegionBlock.html"> 56</a></span> <span class="keyword">struct </span><a class="code" href="structFairMQRegionBlock.html">FairMQRegionBlock</a> {</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">void</span>* ptr;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">size_t</span> size;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">void</span>* hint;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="structFairMQRegionBlock.html">FairMQRegionBlock</a>(<span class="keywordtype">void</span>* p, <span class="keywordtype">size_t</span> s, <span class="keywordtype">void</span>* h)</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  : ptr(p), size(s), hint(h)</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {}</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> };</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">using</span> FairMQRegionCallback = std::function<void(<span class="keywordtype">void</span>*, <span class="keywordtype">size_t</span>, <span class="keywordtype">void</span>*)>;</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">using</span> FairMQRegionBulkCallback = std::function<void(<span class="keyword">const</span> std::vector<FairMQRegionBlock>&)>;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">using</span> FairMQRegionEventCallback = std::function<void(<a class="code" href="structFairMQRegionInfo.html">FairMQRegionInfo</a>)>;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classFairMQUnmanagedRegion.html"> 70</a></span> <span class="keyword">class </span><a class="code" href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a>() {}</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a>(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* factory) : fTransport(factory) {}</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* GetData() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> GetSize() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">virtual</span> uint16_t GetId() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetLinger(uint32_t linger) = 0;</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">virtual</span> uint32_t GetLinger() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* GetTransport() { <span class="keywordflow">return</span> fTransport; }</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">void</span> SetTransport(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* transport) { fTransport = transport; }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">virtual</span> ~<a class="code" href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a>() {};</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>* fTransport{<span class="keyword">nullptr</span>};</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">using</span> FairMQUnmanagedRegionPtr = std::unique_ptr<FairMQUnmanagedRegion>;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> FairMQRegionEvent& event)</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">switch</span> (event) {</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">case</span> FairMQRegionEvent::created:</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"created"</span>;</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">case</span> FairMQRegionEvent::destroyed:</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"destroyed"</span>;</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">case</span> FairMQRegionEvent::local_only:</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"local_only"</span>;</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">default</span>:</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"unrecognized event"</span>;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">using</span> RegionCallback = FairMQRegionCallback;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">using</span> RegionBulkCallback = FairMQRegionBulkCallback;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">using</span> RegionEventCallback = FairMQRegionEventCallback;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">using</span> RegionEvent = FairMQRegionEvent;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">using</span> RegionInfo = <a class="code" href="structFairMQRegionInfo.html">FairMQRegionInfo</a>;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">using</span> RegionBlock = <a class="code" href="structFairMQRegionBlock.html">FairMQRegionBlock</a>;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">using</span> UnmanagedRegion = <a class="code" href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a>;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">using</span> UnmanagedRegionPtr = FairMQUnmanagedRegionPtr;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQUNMANAGEDREGION_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructFairMQRegionBlock_html"><div class="ttname"><a href="structFairMQRegionBlock.html">FairMQRegionBlock</a></div><div class="ttdef"><b>Definition:</b> FairMQUnmanagedRegion.h:56</div></div>
|
||||
<div class="ttc" id="astructFairMQRegionInfo_html"><div class="ttname"><a href="structFairMQRegionInfo.html">FairMQRegionInfo</a></div><div class="ttdef"><b>Definition:</b> FairMQUnmanagedRegion.h:29</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassFairMQUnmanagedRegion_html"><div class="ttname"><a href="classFairMQUnmanagedRegion.html">FairMQUnmanagedRegion</a></div><div class="ttdef"><b>Definition:</b> FairMQUnmanagedRegion.h:71</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
130
v1.4.33/InstanceLimit_8h_source.html
Normal file
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/InstanceLimit.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">InstanceLimit.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_INSTANCELIMIT_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_INSTANCELIMIT_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "Strings.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> {</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">template</span><<span class="keyword">typename</span> Tag, <span class="keywordtype">int</span> Max></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">struct </span>InstanceLimiter</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  InstanceLimiter() { Increment(); }</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">explicit</span> InstanceLimiter(<span class="keyword">const</span> InstanceLimiter&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">explicit</span> InstanceLimiter(InstanceLimiter&&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  InstanceLimiter& operator=(<span class="keyword">const</span> InstanceLimiter&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html"> 24</a></span>  <a class="code" href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html">InstanceLimiter</a>& operator=(<a class="code" href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html">InstanceLimiter</a>&&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  ~<a class="code" href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html">InstanceLimiter</a>() { Decrement(); }</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">auto</span> GetCount() -> <span class="keywordtype">int</span> { <span class="keywordflow">return</span> fCount; }</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">auto</span> Increment() -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">if</span> (fCount < Max) {</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  ++fCount;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordflow">throw</span> std::runtime_error(</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  ToString(<span class="stringliteral">"More than "</span>, Max, <span class="stringliteral">" instances of "</span>, Tag(), <span class="stringliteral">" in parallel not supported"</span>));</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  }</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  }</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">auto</span> Decrement() -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">if</span> (fCount > 0) {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  --fCount;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">static</span> <span class="keywordtype">int</span> fCount;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span><<span class="keyword">typename</span> Tag, <span class="keywordtype">int</span> Max></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keywordtype">int</span> InstanceLimiter<Tag, Max>::fCount(0);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_INSTANCELIMIT_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1InstanceLimiter_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html">fair::mq::tools::InstanceLimiter</a></div><div class="ttdef"><b>Definition:</b> InstanceLimit.h:25</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
120
v1.4.33/JSONParser_8h_source.html
Normal file
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/JSONParser.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">JSONParser.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * File: FairMQParser.h</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * Author: winckler</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * Created on May 14, 2015, 5:01 PM</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIR_MQ_JSONPARSER_H</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIR_MQ_JSONPARSER_H</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <boost/property_tree/ptree_fwd.hpp></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">struct </span>ParserError : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> fair::mq::Properties PtreeParser(<span class="keyword">const</span> boost::property_tree::ptree& pt, <span class="keyword">const</span> std::string& deviceId);</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> fair::mq::Properties JSONParser(<span class="keyword">const</span> std::string& filename, <span class="keyword">const</span> std::string& deviceId);</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1ParserError.html"> 33</a></span> <span class="keyword">namespace </span>helper</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> fair::mq::Properties DeviceParser(<span class="keyword">const</span> boost::property_tree::ptree& tree, <span class="keyword">const</span> std::string& deviceId);</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> ChannelParser(<span class="keyword">const</span> boost::property_tree::ptree& tree, fair::mq::Properties& properties);</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span> SubChannelParser(<span class="keyword">const</span> boost::property_tree::ptree& tree, fair::mq::Properties& properties, <span class="keyword">const</span> std::string& channelName, <span class="keyword">const</span> fair::mq::Properties& commonProperties);</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> } <span class="comment">// helper namespace</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_JSONPARSER_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
745
v1.4.33/Manager_8h_source.html
Normal file
@@ -0,0 +1,745 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/shmem/Manager.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_6475741fe3587c0a949798307da6131d.html">shmem</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Manager.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIR_MQ_SHMEM_MANAGER_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIR_MQ_SHMEM_MANAGER_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "Common.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "Region.h"</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "Monitor.h"</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <FairMQMessage.h></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <fairmq/ProgOptions.h></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <boost/date_time/posix_time/posix_time.hpp></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <boost/interprocess/ipc/message_queue.hpp></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <boost/interprocess/managed_shared_memory.hpp></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <boost/interprocess/sync/named_condition.hpp></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <boost/interprocess/sync/named_mutex.hpp></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <boost/process.hpp></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <boost/variant.hpp></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <cstdlib></span> <span class="comment">// getenv</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <memory></span> <span class="comment">// make_unique</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <set></span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <sstream></span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include <sys/mman.h></span> <span class="comment">// mlock</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">class </span>Manager</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  Manager(std::string shmId, std::string deviceId, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> ProgOptions* config)</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  : fShmId(std::move(shmId))</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  , fSegmentId(config ? config->GetProperty<uint16_t>(<span class="stringliteral">"shm-segment-id"</span>, 0) : 0)</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1shmem_1_1Manager.html"> 60</a></span>  , fDeviceId(std::move(deviceId))</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  , fSegments()</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  , fManagementSegment(boost::interprocess::open_or_create, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_mng"</span>).c_str(), 6553600)</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  , fShmVoidAlloc(fManagementSegment.get_segment_manager())</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  , fShmMtx(boost::interprocess::open_or_create, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_mtx"</span>).c_str())</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  , fRegionEventsCV(boost::interprocess::open_or_create, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_cv"</span>).c_str())</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  , fRegionEventsSubscriptionActive(false)</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  , fNumObservedEvents(0)</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  , fDeviceCounter(nullptr)</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  , fEventCounter(nullptr)</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  , fShmSegments(nullptr)</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  , fShmRegions(nullptr)</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  , fInterrupted(false)</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  , fMsgCounter(0)</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> #ifdef FAIRMQ_DEBUG_MODE</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  , fMsgDebug(nullptr)</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  , fShmMsgCounters(nullptr)</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> #endif</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  , fHeartbeatThread()</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  , fSendHeartbeats(true)</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  , fThrowOnBadAlloc(config ? config->GetProperty<bool>(<span class="stringliteral">"shm-throw-bad-alloc"</span>, true) : true)</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  , fNoCleanup(config ? config->GetProperty<bool>(<span class="stringliteral">"shm-no-cleanup"</span>, false) : false)</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">bool</span> mlockSegment = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">bool</span> zeroSegment = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">bool</span> autolaunchMonitor = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  std::string allocationAlgorithm(<span class="stringliteral">"rbtree_best_fit"</span>);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (config) {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  mlockSegment = config->GetProperty<<span class="keywordtype">bool</span>>(<span class="stringliteral">"shm-mlock-segment"</span>, mlockSegment);</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  zeroSegment = config->GetProperty<<span class="keywordtype">bool</span>>(<span class="stringliteral">"shm-zero-segment"</span>, zeroSegment);</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  autolaunchMonitor = config->GetProperty<<span class="keywordtype">bool</span>>(<span class="stringliteral">"shm-monitor"</span>, autolaunchMonitor);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  allocationAlgorithm = config->GetProperty<std::string>(<span class="stringliteral">"shm-allocation"</span>, allocationAlgorithm);</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  LOG(debug) << <span class="stringliteral">"ProgOptions not available! Using defaults."</span>;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (autolaunchMonitor) {</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  StartMonitor(fShmId);</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  fShmSegments = fManagementSegment.find_or_construct<Uint16SegmentInfoHashMap>(unique_instance)(fShmVoidAlloc);</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  fEventCounter = fManagementSegment.find<<a class="code" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">EventCounter</a>>(unique_instance).first;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (fEventCounter) {</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  LOG(debug) << <span class="stringliteral">"event counter found: "</span> << fEventCounter->fCount;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  LOG(debug) << <span class="stringliteral">"no event counter found, creating one and initializing with 0"</span>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  fEventCounter = fManagementSegment.construct<<a class="code" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">EventCounter</a>>(unique_instance)(0);</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  LOG(debug) << <span class="stringliteral">"initialized event counter with: "</span> << fEventCounter->fCount;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">auto</span> it = fShmSegments->find(fSegmentId);</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (it == fShmSegments->end()) {</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// no segment with given id exists, creating</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (allocationAlgorithm == <span class="stringliteral">"rbtree_best_fit"</span>) {</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  fSegments.emplace(fSegmentId, RBTreeBestFitSegment(create_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(fSegmentId)).c_str(), size));</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  fShmSegments->emplace(fSegmentId, AllocationAlgorithm::rbtree_best_fit);</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (allocationAlgorithm == <span class="stringliteral">"simple_seq_fit"</span>) {</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  fSegments.emplace(fSegmentId, SimpleSeqFitSegment(create_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(fSegmentId)).c_str(), size));</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  fShmSegments->emplace(fSegmentId, AllocationAlgorithm::simple_seq_fit);</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  ss << <span class="stringliteral">"Created "</span>;</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  (fEventCounter->fCount)++;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// found segment with the given id, opening</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (it->second.fAllocationAlgorithm == AllocationAlgorithm::rbtree_best_fit) {</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  fSegments.emplace(fSegmentId, RBTreeBestFitSegment(open_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(fSegmentId)).c_str()));</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (allocationAlgorithm != <span class="stringliteral">"rbtree_best_fit"</span>) {</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  LOG(warn) << <span class="stringliteral">"Allocation algorithm of the opened segment is rbtree_best_fit, but requested is "</span> << allocationAlgorithm << <span class="stringliteral">". Ignoring requested setting."</span>;</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  allocationAlgorithm = <span class="stringliteral">"rbtree_best_fit"</span>;</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  fSegments.emplace(fSegmentId, SimpleSeqFitSegment(open_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(fSegmentId)).c_str()));</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (allocationAlgorithm != <span class="stringliteral">"simple_seq_fit"</span>) {</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  LOG(warn) << <span class="stringliteral">"Allocation algorithm of the opened segment is simple_seq_fit, but requested is "</span> << allocationAlgorithm << <span class="stringliteral">". Ignoring requested setting."</span>;</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  allocationAlgorithm = <span class="stringliteral">"simple_seq_fit"</span>;</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  ss << <span class="stringliteral">"Opened "</span>;</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  ss << <span class="stringliteral">"shared memory segment '"</span> << <span class="stringliteral">"fmq_"</span> << fShmId << <span class="stringliteral">"_m_"</span> << fSegmentId << <span class="stringliteral">"'."</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  << <span class="stringliteral">" Size: "</span> << boost::apply_visitor(<a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentSize.html">SegmentSize</a>{}, fSegments.at(fSegmentId)) << <span class="stringliteral">" bytes."</span></div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  << <span class="stringliteral">" Available: "</span> << boost::apply_visitor(<a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html">SegmentFreeMemory</a>{}, fSegments.at(fSegmentId)) << <span class="stringliteral">" bytes."</span></div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  << <span class="stringliteral">" Allocation algorithm: "</span> << allocationAlgorithm;</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  LOG(debug) << ss.str();</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  } <span class="keywordflow">catch</span>(interprocess_exception& bie) {</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  LOG(error) << <span class="stringliteral">"Failed to create/open shared memory segment ("</span> << <span class="stringliteral">"fmq_"</span> << fShmId << <span class="stringliteral">"_m_"</span> << fSegmentId << <span class="stringliteral">"): "</span> << bie.what();</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">throw</span> std::runtime_error(tools::ToString(<span class="stringliteral">"Failed to create/open shared memory segment ("</span>, <span class="stringliteral">"fmq_"</span>, fShmId, <span class="stringliteral">"_m_"</span>, fSegmentId, <span class="stringliteral">"): "</span>, bie.what()));</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (mlockSegment) {</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  LOG(debug) << <span class="stringliteral">"Locking the managed segment memory pages..."</span>;</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (mlock(boost::apply_visitor(<a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html">SegmentAddress</a>{}, fSegments.at(fSegmentId)), boost::apply_visitor(<a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentSize.html">SegmentSize</a>{}, fSegments.at(fSegmentId))) == -1) {</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  LOG(error) << <span class="stringliteral">"Could not lock the managed segment memory. Code: "</span> << errno << <span class="stringliteral">", reason: "</span> << strerror(errno);</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  LOG(debug) << <span class="stringliteral">"Successfully locked the managed segment memory pages."</span>;</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (zeroSegment) {</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  LOG(debug) << <span class="stringliteral">"Zeroing the managed segment free memory..."</span>;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  boost::apply_visitor(<a class="code" href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html">SegmentMemoryZeroer</a>{}, fSegments.at(fSegmentId));</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  LOG(debug) << <span class="stringliteral">"Successfully zeroed the managed segment free memory."</span>;</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  fShmRegions = fManagementSegment.find_or_construct<Uint16RegionInfoHashMap>(unique_instance)(fShmVoidAlloc);</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  fDeviceCounter = fManagementSegment.find<<a class="code" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">DeviceCounter</a>>(unique_instance).first;</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (fDeviceCounter) {</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  LOG(debug) << <span class="stringliteral">"device counter found, with value of "</span> << fDeviceCounter->fCount << <span class="stringliteral">". incrementing."</span>;</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  (fDeviceCounter->fCount)++;</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  LOG(debug) << <span class="stringliteral">"incremented device counter, now: "</span> << fDeviceCounter->fCount;</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  LOG(debug) << <span class="stringliteral">"no device counter found, creating one and initializing with 1"</span>;</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  fDeviceCounter = fManagementSegment.construct<<a class="code" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">DeviceCounter</a>>(unique_instance)(1);</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  LOG(debug) << <span class="stringliteral">"initialized device counter with: "</span> << fDeviceCounter->fCount;</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  fMsgDebug = fManagementSegment.find_or_construct<Uint16MsgDebugMapHashMap>(unique_instance)(fShmVoidAlloc);</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  fShmMsgCounters = fManagementSegment.find_or_construct<Uint16MsgCounterHashMap>(unique_instance)(fShmVoidAlloc);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  fHeartbeatThread = std::thread(&Manager::SendHeartbeats, <span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classfair_1_1mq_1_1shmem_1_1Manager.html">Manager</a>() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classfair_1_1mq_1_1shmem_1_1Manager.html">Manager</a>(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Manager.html">Manager</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classfair_1_1mq_1_1shmem_1_1Manager.html">Manager</a> operator=(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Manager.html">Manager</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> StartMonitor(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  named_mutex monitorStatus(open_only, std::string(<span class="stringliteral">"fmq_"</span> + <span class="keywordtype">id</span> + <span class="stringliteral">"_ms"</span>).c_str());</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  LOG(debug) << <span class="stringliteral">"Found fairmq-shmmonitor for shared memory id "</span> << id;</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  } <span class="keywordflow">catch</span> (interprocess_exception&) {</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  LOG(debug) << <span class="stringliteral">"no fairmq-shmmonitor found for shared memory id "</span> << <span class="keywordtype">id</span> << <span class="stringliteral">", starting..."</span>;</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">auto</span> env = boost::this_process::environment();</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  std::vector<boost::filesystem::path> ownPath = boost::this_process::path();</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keywordtype">char</span>* fmqp = getenv(<span class="stringliteral">"FAIRMQ_PATH"</span>)) {</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  ownPath.insert(ownPath.begin(), boost::filesystem::path(fmqp));</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  boost::filesystem::path p = boost::process::search_path(<span class="stringliteral">"fairmq-shmmonitor"</span>, ownPath);</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">if</span> (!p.empty()) {</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  boost::process::spawn(p, <span class="stringliteral">"-x"</span>, <span class="stringliteral">"--shmid"</span>, <span class="keywordtype">id</span>, <span class="stringliteral">"-d"</span>, <span class="stringliteral">"-t"</span>, <span class="stringliteral">"2000"</span>, env);</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordtype">int</span> numTries = 0;</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">do</span> {</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  named_mutex monitorStatus(open_only, std::string(<span class="stringliteral">"fmq_"</span> + <span class="keywordtype">id</span> + <span class="stringliteral">"_ms"</span>).c_str());</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  LOG(debug) << <span class="stringliteral">"Started fairmq-shmmonitor for shared memory id "</span> << id;</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  } <span class="keywordflow">catch</span> (interprocess_exception&) {</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::this_thread::sleep_for(std::chrono::milliseconds(10));</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span> (++numTries > 1000) {</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  LOG(error) << <span class="stringliteral">"Did not get response from fairmq-shmmonitor after "</span> << 10 * 1000 << <span class="stringliteral">" milliseconds. Exiting."</span>;</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">throw</span> std::runtime_error(tools::ToString(<span class="stringliteral">"Did not get response from fairmq-shmmonitor after "</span>, 10 * 1000, <span class="stringliteral">" milliseconds. Exiting."</span>));</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  LOG(warn) << <span class="stringliteral">"could not find fairmq-shmmonitor in the path"</span>;</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordtype">void</span> Interrupt() { fInterrupted.store(<span class="keyword">true</span>); }</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordtype">void</span> Resume() { fInterrupted.store(<span class="keyword">false</span>); }</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">void</span> Reset()</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (fMsgCounter.load() != 0) {</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  LOG(error) << <span class="stringliteral">"Message counter during Reset expected to be 0, found: "</span> << fMsgCounter.load();</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">throw</span> MessageError(tools::ToString(<span class="stringliteral">"Message counter during Reset expected to be 0, found: "</span>, fMsgCounter.load()));</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordtype">bool</span> Interrupted() { <span class="keywordflow">return</span> fInterrupted.load(); }</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  </div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  std::pair<boost::interprocess::mapped_region*, uint16_t> CreateRegion(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size,</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> int64_t userFlags,</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  RegionCallback callback,</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  RegionBulkCallback bulkCallback,</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> std::string& path = <span class="stringliteral">""</span>,</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">int</span> flags = 0)</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  std::pair<mapped_region*, uint16_t> result;</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  uint16_t <span class="keywordtype">id</span> = 0;</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  RegionCounter* rc = fManagementSegment.find<RegionCounter>(unique_instance).first;</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">if</span> (rc) {</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  LOG(debug) << <span class="stringliteral">"region counter found, with value of "</span> << rc->fCount << <span class="stringliteral">". incrementing."</span>;</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  (rc->fCount)++;</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  LOG(debug) << <span class="stringliteral">"incremented region counter, now: "</span> << rc->fCount;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  LOG(debug) << <span class="stringliteral">"no region counter found, creating one and initializing with 1"</span>;</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  rc = fManagementSegment.construct<RegionCounter>(unique_instance)(1);</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  LOG(debug) << <span class="stringliteral">"initialized region counter with: "</span> << rc->fCount;</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  </div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordtype">id</span> = rc->fCount;</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">auto</span> it = fRegions.find(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (it != fRegions.end()) {</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  LOG(error) << <span class="stringliteral">"Trying to create a region that already exists"</span>;</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> {<span class="keyword">nullptr</span>, <span class="keywordtype">id</span>};</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="comment">// create region info</span></div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  fShmRegions->emplace(<span class="keywordtype">id</span>, RegionInfo(path.c_str(), flags, userFlags, fShmVoidAlloc));</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">auto</span> r = fRegions.emplace(<span class="keywordtype">id</span>, std::make_unique<Region>(fShmId, <span class="keywordtype">id</span>, size, <span class="keyword">false</span>, callback, bulkCallback, path, flags));</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// LOG(debug) << "Created region with id '" << id << "', path: '" << path << "', flags: '" << flags << "'";</span></div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  r.first->second->StartReceivingAcks();</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  result.first = &(r.first->second->fRegion);</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  result.second = id;</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  (fEventCounter->fCount)++;</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  fRegionEventsCV.notify_all();</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  } <span class="keywordflow">catch</span> (interprocess_exception& e) {</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  LOG(error) << <span class="stringliteral">"cannot create region. Already created/not cleaned up?"</span>;</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  LOG(error) << e.what();</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">throw</span>;</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  </div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  Region* GetRegion(<span class="keyword">const</span> uint16_t <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> GetRegionUnsafe(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  Region* GetRegionUnsafe(<span class="keyword">const</span> uint16_t <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="comment">// remote region could actually be a local one if a message originates from this device (has been sent out and returned)</span></div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">auto</span> it = fRegions.find(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (it != fRegions.end()) {</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> it->second.get();</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// get region info</span></div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  RegionInfo regionInfo = fShmRegions->at(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  std::string path = regionInfo.fPath.c_str();</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordtype">int</span> flags = regionInfo.fFlags;</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// LOG(debug) << "Located remote region with id '" << id << "', path: '" << path << "', flags: '" << flags << "'";</span></div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">auto</span> r = fRegions.emplace(<span class="keywordtype">id</span>, std::make_unique<Region>(fShmId, <span class="keywordtype">id</span>, 0, <span class="keyword">true</span>, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, path, flags));</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> r.first->second.get();</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  } <span class="keywordflow">catch</span> (std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  LOG(error) << <span class="stringliteral">"Could not get remote region with id '"</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"'. Does the region creator run with the same session id?"</span>;</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  LOG(error) << oor.what();</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  } <span class="keywordflow">catch</span> (boost::interprocess::interprocess_exception& e) {</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  LOG(warn) << <span class="stringliteral">"Could not get remote region for id '"</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">void</span> RemoveRegion(<span class="keyword">const</span> uint16_t <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  fRegions.erase(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  fShmRegions->at(<span class="keywordtype">id</span>).fDestroyed = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  (fEventCounter->fCount)++;</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  fRegionEventsCV.notify_all();</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  std::vector<fair::mq::RegionInfo> GetRegionInfo()</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">return</span> GetRegionInfoUnsafe();</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  std::vector<fair::mq::RegionInfo> GetRegionInfoUnsafe()</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::vector<fair::mq::RegionInfo> result;</div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  </div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& e : *fShmRegions) {</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="structFairMQRegionInfo.html">fair::mq::RegionInfo</a> info;</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  info.managed = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  info.id = e.first;</div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  info.flags = e.second.fUserFlags;</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  info.event = e.second.fDestroyed ? RegionEvent::destroyed : RegionEvent::created;</div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (!e.second.fDestroyed) {</div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">auto</span> region = GetRegionUnsafe(info.id);</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  info.ptr = region->fRegion.get_address();</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  info.size = region->fRegion.get_size();</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  info.ptr = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  info.size = 0;</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  result.push_back(info);</div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& e : *fShmSegments) {</div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="comment">// make sure any segments in the session are found</span></div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  GetSegment(e.first);</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="structFairMQRegionInfo.html">fair::mq::RegionInfo</a> info;</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  info.managed = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  info.id = e.first;</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  info.event = RegionEvent::created;</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  info.ptr = boost::apply_visitor(SegmentAddress{}, fSegments.at(e.first));</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  info.size = boost::apply_visitor(SegmentSize{}, fSegments.at(e.first));</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  result.push_back(info);</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  LOG(error) << <span class="stringliteral">"could not find segment with id "</span> << e.first;</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  LOG(error) << oor.what();</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordtype">void</span> SubscribeToRegionEvents(RegionEventCallback callback)</div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (fRegionEventThread.joinable()) {</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  LOG(debug) << <span class="stringliteral">"Already subscribed. Overwriting previous subscription."</span>;</div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  fRegionEventsSubscriptionActive = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  lock.unlock();</div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  fRegionEventsCV.notify_all();</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  fRegionEventThread.join();</div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  fRegionEventCallback = callback;</div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  fRegionEventsSubscriptionActive = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  fRegionEventThread = std::thread(&Manager::RegionEventsSubscription, <span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordtype">bool</span> SubscribedToRegionEvents() { <span class="keywordflow">return</span> fRegionEventThread.joinable(); }</div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordtype">void</span> UnsubscribeFromRegionEvents()</div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (fRegionEventThread.joinable()) {</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  fRegionEventsSubscriptionActive = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  lock.unlock();</div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  fRegionEventsCV.notify_all();</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  fRegionEventThread.join();</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  lock.lock();</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  fRegionEventCallback = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  </div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordtype">void</span> RegionEventsSubscription()</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  {</div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">while</span> (fRegionEventsSubscriptionActive) {</div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">auto</span> infos = GetRegionInfoUnsafe();</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& i : infos) {</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keyword">auto</span> el = fObservedRegionEvents.find({i.id, i.managed});</div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">if</span> (el == fObservedRegionEvents.end()) {</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  fRegionEventCallback(i);</div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  fObservedRegionEvents.emplace(std::make_pair(i.id, i.managed), i.event);</div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  ++fNumObservedEvents;</div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">if</span> (el->second == RegionEvent::created && i.event == RegionEvent::destroyed) {</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  fRegionEventCallback(i);</div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  el->second = i.event;</div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  ++fNumObservedEvents;</div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">// LOG(debug) << "ignoring event for id" << i.id << ":";</span></div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="comment">// LOG(debug) << "incoming event: " << i.event;</span></div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// LOG(debug) << "stored event: " << el->second;</span></div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  fRegionEventsCV.wait(lock, [&] { <span class="keywordflow">return</span> !fRegionEventsSubscriptionActive || fNumObservedEvents != fEventCounter->fCount; });</div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordtype">void</span> IncrementMsgCounter() { fMsgCounter.fetch_add(1, std::memory_order_relaxed); }</div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">void</span> DecrementMsgCounter() { fMsgCounter.fetch_sub(1, std::memory_order_relaxed); }</div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  </div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordtype">void</span> IncrementShmMsgCounter(uint16_t segmentId) { ++((*fShmMsgCounters)[segmentId].fCount); }</div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">void</span> DecrementShmMsgCounter(uint16_t segmentId) { --((*fShmMsgCounters)[segmentId].fCount); }</div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  boost::interprocess::named_mutex& GetMtx() { <span class="keywordflow">return</span> fShmMtx; }</div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  </div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">void</span> SendHeartbeats()</div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  std::string controlQueueName(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_cq"</span>);</div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  std::unique_lock<std::mutex> lock(fHeartbeatsMtx);</div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">while</span> (fSendHeartbeats) {</div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  boost::interprocess::message_queue mq(boost::interprocess::open_only, controlQueueName.c_str());</div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  boost::posix_time::ptime sndTill = boost::posix_time::microsec_clock::universal_time() + boost::posix_time::milliseconds(100);</div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">if</span> (mq.timed_send(fDeviceId.c_str(), fDeviceId.size(), 0, sndTill)) {</div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  fHeartbeatsCV.wait_for(lock, std::chrono::milliseconds(100), [&]() { <span class="keywordflow">return</span> !fSendHeartbeats; });</div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  LOG(debug) << <span class="stringliteral">"control queue timeout"</span>;</div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  } <span class="keywordflow">catch</span> (boost::interprocess::interprocess_exception& ie) {</div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  fHeartbeatsCV.wait_for(lock, std::chrono::milliseconds(500), [&]() { <span class="keywordflow">return</span> !fSendHeartbeats; });</div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// LOG(debug) << "no " << controlQueueName << " found";</span></div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  </div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordtype">bool</span> ThrowingOnBadAlloc()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fThrowOnBadAlloc; }</div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  </div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordtype">void</span> GetSegment(uint16_t <span class="keywordtype">id</span>)</div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">auto</span> it = fSegments.find(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (it == fSegments.end()) {</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">// get region info</span></div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  SegmentInfo segmentInfo = fShmSegments->at(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  LOG(debug) << <span class="stringliteral">"Located segment with id '"</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (segmentInfo.fAllocationAlgorithm == AllocationAlgorithm::rbtree_best_fit) {</div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  fSegments.emplace(<span class="keywordtype">id</span>, RBTreeBestFitSegment(open_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(<span class="keywordtype">id</span>)).c_str()));</div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  fSegments.emplace(<span class="keywordtype">id</span>, SimpleSeqFitSegment(open_only, std::string(<span class="stringliteral">"fmq_"</span> + fShmId + <span class="stringliteral">"_m_"</span> + std::to_string(<span class="keywordtype">id</span>)).c_str()));</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  } <span class="keywordflow">catch</span> (std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  LOG(error) << <span class="stringliteral">"Could not get segment with id '"</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"': "</span> << oor.what();</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  } <span class="keywordflow">catch</span> (boost::interprocess::interprocess_exception& bie) {</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  LOG(error) << <span class="stringliteral">"Could not get segment with id '"</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"': "</span> << bie.what();</div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div>
|
||||
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  }</div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  boost::interprocess::managed_shared_memory::handle_t GetHandleFromAddress(<span class="keyword">const</span> <span class="keywordtype">void</span>* ptr, uint16_t segmentId)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> boost::apply_visitor(SegmentHandleFromAddress{ptr}, fSegments.at(segmentId));</div>
|
||||
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div>
|
||||
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordtype">void</span>* GetAddressFromHandle(<span class="keyword">const</span> boost::interprocess::managed_shared_memory::handle_t handle, uint16_t segmentId)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> boost::apply_visitor(SegmentAddressFromHandle{handle}, fSegments.at(segmentId));</div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
|
||||
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordtype">char</span>* Allocate(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> alignment = 0)</div>
|
||||
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
||||
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordtype">char</span>* ptr = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="comment">// tools::RateLimiter rateLimiter(20);</span></div>
|
||||
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  </div>
|
||||
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">while</span> (ptr == <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="comment">// boost::interprocess::managed_shared_memory::size_type actualSize = size;</span></div>
|
||||
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="comment">// char* hint = 0; // unused for boost::interprocess::allocate_new</span></div>
|
||||
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="comment">// ptr = fSegments.at(fSegmentId).allocation_command<char>(boost::interprocess::allocate_new, size, actualSize, hint);</span></div>
|
||||
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordtype">size_t</span> segmentSize = boost::apply_visitor(SegmentSize{}, fSegments.at(fSegmentId));</div>
|
||||
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">if</span> (size > segmentSize) {</div>
|
||||
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">throw</span> MessageBadAlloc(tools::ToString(<span class="stringliteral">"Requested message size ("</span>, size, <span class="stringliteral">") exceeds segment size ("</span>, segmentSize, <span class="stringliteral">")"</span>));</div>
|
||||
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div>
|
||||
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">if</span> (alignment == 0) {</div>
|
||||
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  ptr = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(boost::apply_visitor(SegmentAllocate{size}, fSegments.at(fSegmentId)));</div>
|
||||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  ptr = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(boost::apply_visitor(SegmentAllocateAligned{size, alignment}, fSegments.at(fSegmentId)));</div>
|
||||
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  }</div>
|
||||
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  } <span class="keywordflow">catch</span> (boost::interprocess::bad_alloc& ba) {</div>
|
||||
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="comment">// LOG(warn) << "Shared memory full...";</span></div>
|
||||
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (ThrowingOnBadAlloc()) {</div>
|
||||
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">throw</span> MessageBadAlloc(tools::ToString(<span class="stringliteral">"shmem: could not create a message of size "</span>, size, <span class="stringliteral">", alignment: "</span>, (alignment != 0) ? std::to_string(alignment) : <span class="stringliteral">"default"</span>, <span class="stringliteral">", free memory: "</span>, boost::apply_visitor(SegmentFreeMemory{}, fSegments.at(fSegmentId))));</div>
|
||||
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div>
|
||||
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="comment">// rateLimiter.maybe_sleep();</span></div>
|
||||
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  std::this_thread::sleep_for(std::chrono::milliseconds(50));</div>
|
||||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">if</span> (Interrupted()) {</div>
|
||||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> ptr;</div>
|
||||
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
||||
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div>
|
||||
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  IncrementShmMsgCounter(fSegmentId);</div>
|
||||
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">if</span> (fMsgDebug->count(fSegmentId) == 0) {</div>
|
||||
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  (*fMsgDebug).emplace(fSegmentId, fShmVoidAlloc);</div>
|
||||
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div>
|
||||
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  (*fMsgDebug).at(fSegmentId).emplace(</div>
|
||||
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(GetHandleFromAddress(ptr, fSegmentId)),</div>
|
||||
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  MsgDebug(getpid(), size, std::chrono::system_clock::now().time_since_epoch().count())</div>
|
||||
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  );</div>
|
||||
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  }</div>
|
||||
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  </div>
|
||||
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">return</span> ptr;</div>
|
||||
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div>
|
||||
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  </div>
|
||||
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordtype">void</span> Deallocate(boost::interprocess::managed_shared_memory::handle_t handle, uint16_t segmentId)</div>
|
||||
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div>
|
||||
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  boost::apply_visitor(SegmentDeallocate{GetAddressFromHandle(handle, segmentId)}, fSegments.at(segmentId));</div>
|
||||
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  DecrementShmMsgCounter(segmentId);</div>
|
||||
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  (*fMsgDebug).at(segmentId).erase(handle);</div>
|
||||
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  } <span class="keywordflow">catch</span>(<span class="keyword">const</span> std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  LOG(debug) << <span class="stringliteral">"could not locate debug container for "</span> << segmentId << <span class="stringliteral">": "</span> << oor.what();</div>
|
||||
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  }</div>
|
||||
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div>
|
||||
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
|
||||
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordtype">char</span>* ShrinkInPlace(<span class="keywordtype">size_t</span> newSize, <span class="keywordtype">char</span>* localPtr, uint16_t segmentId)</div>
|
||||
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  {</div>
|
||||
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">return</span> boost::apply_visitor(SegmentBufferShrink{newSize, localPtr}, fSegments.at(segmentId));</div>
|
||||
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div>
|
||||
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  </div>
|
||||
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  uint16_t GetSegmentId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fSegmentId; }</div>
|
||||
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  </div>
|
||||
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  ~Manager()</div>
|
||||
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {</div>
|
||||
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordtype">bool</span> lastRemoved = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  </div>
|
||||
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  UnsubscribeFromRegionEvents();</div>
|
||||
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  </div>
|
||||
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  {</div>
|
||||
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  std::unique_lock<std::mutex> lock(fHeartbeatsMtx);</div>
|
||||
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  fSendHeartbeats = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div>
|
||||
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  fHeartbeatsCV.notify_one();</div>
|
||||
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">if</span> (fHeartbeatThread.joinable()) {</div>
|
||||
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  fHeartbeatThread.join();</div>
|
||||
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div>
|
||||
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  </div>
|
||||
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  boost::interprocess::scoped_lock<named_mutex> lock(fShmMtx);</div>
|
||||
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
|
||||
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  (fDeviceCounter->fCount)--;</div>
|
||||
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
|
||||
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">if</span> (fDeviceCounter->fCount == 0) {</div>
|
||||
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  LOG(debug) << <span class="stringliteral">"Last segment user, "</span> << (fNoCleanup ? <span class="stringliteral">"skipping removal (--shm-no-cleanup is true)."</span> : <span class="stringliteral">"removing segment."</span>);</div>
|
||||
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  lastRemoved = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  LOG(debug) << <span class="stringliteral">"Other segment users present ("</span> << fDeviceCounter->fCount << <span class="stringliteral">"), skipping removal."</span>;</div>
|
||||
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  }</div>
|
||||
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  } <span class="keywordflow">catch</span> (interprocess_exception& e) {</div>
|
||||
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  LOG(error) << <span class="stringliteral">"Manager could not acquire lock: "</span> << e.what();</div>
|
||||
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div>
|
||||
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  </div>
|
||||
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">if</span> (lastRemoved && !fNoCleanup) {</div>
|
||||
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html#a612e661e8ff850117604565b5a55c8fe">Monitor::Cleanup</a>(ShmId{fShmId});</div>
|
||||
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div>
|
||||
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
||||
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
|
||||
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  std::string fShmId;</div>
|
||||
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  uint16_t fSegmentId;</div>
|
||||
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  std::unordered_map<uint16_t, boost::variant<RBTreeBestFitSegment, SimpleSeqFitSegment>> fSegments;</div>
|
||||
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  boost::interprocess::managed_shared_memory fManagementSegment;</div>
|
||||
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  VoidAlloc fShmVoidAlloc;</div>
|
||||
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  boost::interprocess::named_mutex fShmMtx;</div>
|
||||
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  </div>
|
||||
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  boost::interprocess::named_condition fRegionEventsCV;</div>
|
||||
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  std::thread fRegionEventThread;</div>
|
||||
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordtype">bool</span> fRegionEventsSubscriptionActive;</div>
|
||||
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  std::function<void(<a class="code" href="structFairMQRegionInfo.html">fair::mq::RegionInfo</a>)> fRegionEventCallback;</div>
|
||||
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  std::map<std::pair<uint16_t, bool>, RegionEvent> fObservedRegionEvents;</div>
|
||||
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  uint64_t fNumObservedEvents;</div>
|
||||
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  </div>
|
||||
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  DeviceCounter* fDeviceCounter;</div>
|
||||
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  EventCounter* fEventCounter;</div>
|
||||
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  Uint16SegmentInfoHashMap* fShmSegments;</div>
|
||||
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  Uint16RegionInfoHashMap* fShmRegions;</div>
|
||||
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  std::unordered_map<uint16_t, std::unique_ptr<Region>> fRegions;</div>
|
||||
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  </div>
|
||||
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  std::atomic<bool> fInterrupted;</div>
|
||||
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  std::atomic<int32_t> fMsgCounter; <span class="comment">// TODO: find a better lifetime solution instead of the counter</span></div>
|
||||
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor">#ifdef FAIRMQ_DEBUG_MODE</span></div>
|
||||
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  Uint16MsgDebugMapHashMap* fMsgDebug;</div>
|
||||
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  Uint16MsgCounterHashMap* fShmMsgCounters;</div>
|
||||
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  </div>
|
||||
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  std::thread fHeartbeatThread;</div>
|
||||
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordtype">bool</span> fSendHeartbeats;</div>
|
||||
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  std::mutex fHeartbeatsMtx;</div>
|
||||
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  std::condition_variable fHeartbeatsCV;</div>
|
||||
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  </div>
|
||||
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordtype">bool</span> fThrowOnBadAlloc;</div>
|
||||
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordtype">bool</span> fNoCleanup;</div>
|
||||
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> };</div>
|
||||
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  </div>
|
||||
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> } <span class="comment">// namespace fair::mq::shmem</span></div>
|
||||
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  </div>
|
||||
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SHMEM_MANAGER_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1DeviceCounter_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html">fair::mq::shmem::DeviceCounter</a></div><div class="ttdef"><b>Definition:</b> Common.h:105</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1EventCounter_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1EventCounter.html">fair::mq::shmem::EventCounter</a></div><div class="ttdef"><b>Definition:</b> Common.h:114</div></div>
|
||||
<div class="ttc" id="astructFairMQRegionInfo_html"><div class="ttname"><a href="structFairMQRegionInfo.html">FairMQRegionInfo</a></div><div class="ttdef"><b>Definition:</b> FairMQUnmanagedRegion.h:29</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html">fair::mq::shmem::SegmentMemoryZeroer</a></div><div class="ttdef"><b>Definition:</b> Common.h:238</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentFreeMemory_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html">fair::mq::shmem::SegmentFreeMemory</a></div><div class="ttdef"><b>Definition:</b> Common.h:244</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1shmem_1_1Manager_html"><div class="ttname"><a href="classfair_1_1mq_1_1shmem_1_1Manager.html">fair::mq::shmem::Manager</a></div><div class="ttdef"><b>Definition:</b> Manager.h:61</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentSize_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentSize.html">fair::mq::shmem::SegmentSize</a></div><div class="ttdef"><b>Definition:</b> Common.h:226</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SegmentAddress_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html">fair::mq::shmem::SegmentAddress</a></div><div class="ttdef"><b>Definition:</b> Common.h:232</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1shmem_1_1Monitor_html_a612e661e8ff850117604565b5a55c8fe"><div class="ttname"><a href="classfair_1_1mq_1_1shmem_1_1Monitor.html#a612e661e8ff850117604565b5a55c8fe">fair::mq::shmem::Monitor::Cleanup</a></div><div class="ttdeci">static std::vector< std::pair< std::string, bool > > Cleanup(const ShmId &shmId, bool verbose=true)</div><div class="ttdoc">Cleanup all shared memory artifacts created by devices.</div><div class="ttdef"><b>Definition:</b> Monitor.cxx:466</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_1_1shmem_html"><div class="ttname"><a href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div><div class="ttdef"><b>Definition:</b> Common.h:33</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
137
v1.4.33/MemoryResourceTools_8h_source.html
Normal file
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/MemoryResourceTools.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">MemoryResourceTools.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2018 CERN and copyright holders of ALICE O2 *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/FairMQTransportFactory.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/MemoryResources.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">using</span> BytePmrAllocator = pmr::polymorphic_allocator<fair::mq::byte>;</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">//_________________________________________________________________________________________________</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// return the message associated with the container or throw if it is not possible</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">template</span><<span class="keyword">typename</span> ContainerT></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// typename std::enable_if<</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// std::is_base_of<</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// pmr::polymorphic_allocator<typename</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// ContainerT::value_type>,</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// typename ContainerT::allocator_type>::value == true,</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// FairMQMessagePtr>::type</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> FairMQMessagePtr getMessage(ContainerT &&container_, FairMQMemoryResource *targetResource = <span class="keyword">nullptr</span>)</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">auto</span> container = std::move(container_);</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">auto</span> alloc = container.get_allocator();</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">auto</span> resource = <span class="keyword">dynamic_cast<</span>FairMQMemoryResource *<span class="keyword">></span>(alloc.resource());</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (!resource && !targetResource) {</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"Neither the container or target resource specified"</span>);</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">size_t</span> containerSizeBytes = container.size() * <span class="keyword">sizeof</span>(<span class="keyword">typename</span> ContainerT::value_type);</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">if</span> ((!targetResource && resource)</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  || (resource && targetResource && resource->is_equal(*targetResource))) {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">auto</span> message = resource->getMessage(<span class="keyword">static_cast<</span><span class="keywordtype">void</span> *<span class="keyword">></span>(</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const_cast<</span>typename std::remove_const<typename ContainerT::value_type>::type *<span class="keyword">></span>(</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  container.data())));</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">if</span> (message)</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  message->SetUsedSize(containerSizeBytes);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> message;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">//container is not required to allocate (like in std::string small string optimization)</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">//in case we get no message we fall back to default (copy) behaviour)</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  targetResource = resource;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">auto</span> message = targetResource->getTransportFactory()->CreateMessage(containerSizeBytes);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  std::memcpy(<span class="keyword">static_cast<</span>fair::mq::byte *<span class="keyword">></span>(message->GetData()),</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  container.data(),</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  containerSizeBytes);</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> message;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
176
v1.4.33/MemoryResources_8h_source.html
Normal file
@@ -0,0 +1,176 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/MemoryResources.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">MemoryResources.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2018 CERN and copyright holders of ALICE O2 *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIR_MQ_MEMORY_RESOURCES_H</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIR_MQ_MEMORY_RESOURCES_H</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <fairmq/FairMQMessage.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">class </span><a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a>;</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/container/container_fwd.hpp></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <boost/container/flat_map.hpp></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <boost/container/pmr/memory_resource.hpp></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <cstring></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">using</span> <span class="keywordtype">byte</span> = <span class="keywordtype">unsigned</span> char;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span>pmr = boost::container::pmr;</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1FairMQMemoryResource.html"> 38</a></span> <span class="keyword">class </span><a class="code" href="classfair_1_1mq_1_1FairMQMemoryResource.html">FairMQMemoryResource</a> : <span class="keyword">public</span> pmr::memory_resource</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1FairMQMemoryResource.html#ac4af63a6341db214cc350b3270543584"> 46</a></span>  <span class="keyword">virtual</span> FairMQMessagePtr <a class="code" href="classfair_1_1mq_1_1FairMQMemoryResource.html#ac4af63a6341db214cc350b3270543584">getMessage</a>(<span class="keywordtype">void</span> *p) = 0;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> *setMessage(FairMQMessagePtr) = 0;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">virtual</span> <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *getTransportFactory() noexcept = 0;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  virtual <span class="keywordtype">size_t</span> getNumberOfMessages() const noexcept = 0;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> };</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ChannelResource.html"> 57</a></span> class <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">ChannelResource</a> : public <a class="code" href="classfair_1_1mq_1_1FairMQMemoryResource.html">FairMQMemoryResource</a></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *factory{<span class="keyword">nullptr</span>};</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// TODO: for now a map to keep track of allocations, something else would</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// probably be</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// faster, but for now this does not need to be fast.</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  boost::container::flat_map<void *, FairMQMessagePtr> messageMap;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">ChannelResource</a>() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classfair_1_1mq_1_1ChannelResource.html">ChannelResource</a>(<a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *_factory)</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  : <a class="code" href="classfair_1_1mq_1_1FairMQMemoryResource.html">FairMQMemoryResource</a>()</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  , factory(_factory)</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  , messageMap()</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (!_factory) {</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"Tried to construct from a nullptr FairMQTransportFactory"</span>);</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ChannelResource.html#a86d96d680d0d8316665c8cd95b68a744"> 79</a></span>  FairMQMessagePtr <a class="code" href="classfair_1_1mq_1_1ChannelResource.html#a86d96d680d0d8316665c8cd95b68a744">getMessage</a>(<span class="keywordtype">void</span> *p)<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">auto</span> mes = std::move(messageMap[p]);</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  messageMap.erase(p);</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> mes;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> *setMessage(FairMQMessagePtr message)<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">void</span> *addr = message->GetData();</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  messageMap[addr] = std::move(message);</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> addr;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *getTransportFactory() noexcept<span class="keyword"> override </span>{ <span class="keywordflow">return</span> factory; }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">size_t</span> getNumberOfMessages() const noexcept<span class="keyword"> override </span>{ <span class="keywordflow">return</span> messageMap.size(); }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">void</span> *do_allocate(std::size_t bytes, std::size_t alignment) <span class="keyword">override</span>;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordtype">void</span> do_deallocate(<span class="keywordtype">void</span> *p, std::size_t <span class="comment">/*bytes*/</span>, std::size_t <span class="comment">/*alignment*/</span>)<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  messageMap.erase(p);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">bool</span> do_is_equal(<span class="keyword">const</span> pmr::memory_resource &other) <span class="keyword">const</span> noexcept <span class="keyword">override</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">this</span> == &other;</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  };</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> };</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_MEMORY_RESOURCES_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1FairMQMemoryResource_html_ac4af63a6341db214cc350b3270543584"><div class="ttname"><a href="classfair_1_1mq_1_1FairMQMemoryResource.html#ac4af63a6341db214cc350b3270543584">fair::mq::FairMQMemoryResource::getMessage</a></div><div class="ttdeci">virtual FairMQMessagePtr getMessage(void *p)=0</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ChannelResource_html_a86d96d680d0d8316665c8cd95b68a744"><div class="ttname"><a href="classfair_1_1mq_1_1ChannelResource.html#a86d96d680d0d8316665c8cd95b68a744">fair::mq::ChannelResource::getMessage</a></div><div class="ttdeci">FairMQMessagePtr getMessage(void *p) override</div><div class="ttdef"><b>Definition:</b> MemoryResources.h:79</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ChannelResource_html"><div class="ttname"><a href="classfair_1_1mq_1_1ChannelResource.html">fair::mq::ChannelResource</a></div><div class="ttdef"><b>Definition:</b> MemoryResources.h:58</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1FairMQMemoryResource_html"><div class="ttname"><a href="classfair_1_1mq_1_1FairMQMemoryResource.html">fair::mq::FairMQMemoryResource</a></div><div class="ttdef"><b>Definition:</b> MemoryResources.h:39</div></div>
|
||||
<div class="ttc" id="aclassFairMQTransportFactory_html"><div class="ttname"><a href="classFairMQTransportFactory.html">FairMQTransportFactory</a></div><div class="ttdef"><b>Definition:</b> FairMQTransportFactory.h:30</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
192
v1.4.33/Monitor_8h_source.html
Normal file
@@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/shmem/Monitor.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_6475741fe3587c0a949798307da6131d.html">shmem</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Monitor.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef FAIR_MQ_SHMEM_MONITOR_H_</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define FAIR_MQ_SHMEM_MONITOR_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">struct </span>SessionId</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  std::string sessionId;</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">explicit</span> <span class="keyword">operator</span> std::string()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> sessionId; }</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> };</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1SessionId.html"> 29</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1ShmId.html">ShmId</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  std::string shmId;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">explicit</span> <span class="keyword">operator</span> std::string()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> shmId; }</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> };</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1ShmId.html"> 35</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1BufferDebugInfo.html">BufferDebugInfo</a></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1BufferDebugInfo.html">BufferDebugInfo</a>(<span class="keywordtype">size_t</span> offset, pid_t pid, <span class="keywordtype">size_t</span> size, uint64_t creationTime)</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  : fOffset(offset)</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  , fPid(pid)</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  , fSize(size)</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1BufferDebugInfo.html"> 41</a></span>  , fCreationTime(creationTime)</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {}</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">size_t</span> fOffset;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  pid_t fPid;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordtype">size_t</span> fSize;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint64_t fCreationTime;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">class </span>Monitor</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  Monitor(<span class="keyword">const</span> std::string& shmId, <span class="keywordtype">bool</span> selfDestruct, <span class="keywordtype">bool</span> interactive, <span class="keywordtype">bool</span> viewOnly, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> timeoutInMS, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> intervalInMS, <span class="keywordtype">bool</span> runAsDaemon, <span class="keywordtype">bool</span> cleanOnExit);</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Monitor(<span class="keyword">const</span> Monitor&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1shmem_1_1Monitor.html"> 56</a></span>  <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html">Monitor</a> operator=(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html">Monitor</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> ~<a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html">Monitor</a>();</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">void</span> CatchSignals();</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">void</span> Run();</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">static</span> std::vector<std::pair<std::string, bool>> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html#a612e661e8ff850117604565b5a55c8fe">Cleanup</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1ShmId.html">ShmId</a>& shmId, <span class="keywordtype">bool</span> verbose = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">static</span> std::vector<std::pair<std::string, bool>> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html#a612e661e8ff850117604565b5a55c8fe">Cleanup</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1SessionId.html">SessionId</a>& sessionId, <span class="keywordtype">bool</span> verbose = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">static</span> std::vector<std::pair<std::string, bool>> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html#ab3cc87eef0f35a4f7e09c5686d2773f6">CleanupFull</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1ShmId.html">ShmId</a>& shmId, <span class="keywordtype">bool</span> verbose = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">static</span> std::vector<std::pair<std::string, bool>> <a class="code" href="classfair_1_1mq_1_1shmem_1_1Monitor.html#ab3cc87eef0f35a4f7e09c5686d2773f6">CleanupFull</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1SessionId.html">SessionId</a>& sessionId, <span class="keywordtype">bool</span> verbose = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> PrintDebugInfo(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1ShmId.html">ShmId</a>& shmId);</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> PrintDebugInfo(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1SessionId.html">SessionId</a>& shmId);</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">static</span> std::unordered_map<uint16_t, std::vector<BufferDebugInfo>> GetDebugInfo(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1ShmId.html">ShmId</a>& shmId);</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">static</span> std::unordered_map<uint16_t, std::vector<BufferDebugInfo>> GetDebugInfo(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1SessionId.html">SessionId</a>& shmId);</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> RemoveObject(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> RemoveFileMapping(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> RemoveQueue(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> RemoveMutex(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> RemoveCondition(<span class="keyword">const</span> std::string& name);</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1shmem_1_1Monitor_1_1DaemonPresent.html">DaemonPresent</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">void</span> PrintHelp();</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">void</span> MonitorHeartbeats();</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">void</span> CheckSegment();</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1Monitor_1_1DaemonPresent.html"> 97</a></span>  <span class="keywordtype">void</span> Interactive();</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">void</span> SignalMonitor();</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">bool</span> fSelfDestruct; <span class="comment">// will self-destruct after the memory has been closed</span></div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">bool</span> fInteractive; <span class="comment">// running in interactive mode</span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">bool</span> fViewOnly; <span class="comment">// view only mode</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> fIsDaemon;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">bool</span> fSeenOnce; <span class="comment">// true is segment has been opened successfully at least once</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">bool</span> fCleanOnExit;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fTimeoutInMS;</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fIntervalInMS;</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  std::string fShmId;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  std::string fSegmentName;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  std::string fManagementSegmentName;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  std::string fControlQueueName;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  std::atomic<bool> fTerminating;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  std::atomic<bool> fHeartbeatTriggered;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  std::chrono::high_resolution_clock::time_point fLastHeartbeat;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  std::thread fSignalThread;</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  std::unordered_map<std::string, std::chrono::high_resolution_clock::time_point> fDeviceHeartbeats;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> };</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> } <span class="comment">// namespace fair::mq::shmem</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SHMEM_MONITOR_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1SessionId_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1SessionId.html">fair::mq::shmem::SessionId</a></div><div class="ttdef"><b>Definition:</b> Monitor.h:30</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1shmem_1_1Monitor_html_ab3cc87eef0f35a4f7e09c5686d2773f6"><div class="ttname"><a href="classfair_1_1mq_1_1shmem_1_1Monitor.html#ab3cc87eef0f35a4f7e09c5686d2773f6">fair::mq::shmem::Monitor::CleanupFull</a></div><div class="ttdeci">static std::vector< std::pair< std::string, bool > > CleanupFull(const ShmId &shmId, bool verbose=true)</div><div class="ttdoc">Cleanup all shared memory artifacts created by devices and monitors.</div><div class="ttdef"><b>Definition:</b> Monitor.cxx:546</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1ShmId_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1ShmId.html">fair::mq::shmem::ShmId</a></div><div class="ttdef"><b>Definition:</b> Monitor.h:36</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1Monitor_1_1DaemonPresent_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1Monitor_1_1DaemonPresent.html">fair::mq::shmem::Monitor::DaemonPresent</a></div><div class="ttdef"><b>Definition:</b> Monitor.h:97</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1shmem_1_1Monitor_html"><div class="ttname"><a href="classfair_1_1mq_1_1shmem_1_1Monitor.html">fair::mq::shmem::Monitor</a></div><div class="ttdef"><b>Definition:</b> Monitor.h:57</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1shmem_1_1Monitor_html_a612e661e8ff850117604565b5a55c8fe"><div class="ttname"><a href="classfair_1_1mq_1_1shmem_1_1Monitor.html#a612e661e8ff850117604565b5a55c8fe">fair::mq::shmem::Monitor::Cleanup</a></div><div class="ttdeci">static std::vector< std::pair< std::string, bool > > Cleanup(const ShmId &shmId, bool verbose=true)</div><div class="ttdoc">Cleanup all shared memory artifacts created by devices.</div><div class="ttdef"><b>Definition:</b> Monitor.cxx:466</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1BufferDebugInfo_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1BufferDebugInfo.html">fair::mq::shmem::BufferDebugInfo</a></div><div class="ttdef"><b>Definition:</b> Monitor.h:42</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_1_1shmem_html"><div class="ttname"><a href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div><div class="ttdef"><b>Definition:</b> Common.h:33</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
124
v1.4.33/Network_8h_source.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Network.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Network.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_NETWORK_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_NETWORK_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// forward declarations</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>boost</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>asio</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">class </span>io_context;</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">using</span> io_service = <span class="keyword">class </span>io_context;</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> } <span class="comment">// namespace asio</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> } <span class="comment">// namespace boost</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1tools_1_1DefaultRouteDetectionError.html"> 31</a></span> <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1tools_1_1DefaultRouteDetectionError.html">DefaultRouteDetectionError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// returns a map with network interface names as keys and their IP addresses as values</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> std::map<std::string, std::string> getHostIPs();</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// get IP address of a given interface name</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> std::string getInterfaceIP(<span class="keyword">const</span> std::string& interface);</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// get name of the default route interface</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> std::string getDefaultRouteNetworkInterface();</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> std::string getIpFromHostname(<span class="keyword">const</span> std::string& hostname);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> std::string getIpFromHostname(<span class="keyword">const</span> std::string& hostname, boost::asio::io_service& ios);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_NETWORK_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1DefaultRouteDetectionError_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1DefaultRouteDetectionError.html">fair::mq::tools::DefaultRouteDetectionError</a></div><div class="ttdef"><b>Definition:</b> Network.h:31</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
370
v1.4.33/PMIxCommands_8h_source.html
Normal file
@@ -0,0 +1,370 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/PMIx/PMIxCommands.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li><li class="navelem"><a class="el" href="dir_066f3fccd7659c68e6e82b743d15481d.html">PMIx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PMIxCommands.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef PMIXCOMMANDS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define PMIXCOMMANDS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "PMIx.hpp"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/tools/Semaphore.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <memory></span> <span class="comment">// make_unique</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>pmix</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> std::array<std::string, 47> typeNames =</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  {</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="stringliteral">"PMIX_UNDEF"</span>,</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="stringliteral">"PMIX_BOOL"</span>,</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="stringliteral">"PMIX_BYTE"</span>,</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="stringliteral">"PMIX_STRING"</span>,</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="stringliteral">"PMIX_SIZE"</span>,</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="stringliteral">"PMIX_PID"</span>,</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="stringliteral">"PMIX_INT"</span>,</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="stringliteral">"PMIX_INT8"</span>,</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="stringliteral">"PMIX_INT16"</span>,</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="stringliteral">"PMIX_INT32"</span>,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="stringliteral">"PMIX_INT64"</span>,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="stringliteral">"PMIX_UINT"</span>,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="stringliteral">"PMIX_UINT8"</span>,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="stringliteral">"PMIX_UINT16"</span>,</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="stringliteral">"PMIX_UINT32"</span>,</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="stringliteral">"PMIX_UINT64"</span>,</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="stringliteral">"PMIX_FLOAT"</span>,</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="stringliteral">"PMIX_DOUBLE"</span>,</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="stringliteral">"PMIX_TIMEVAL"</span>,</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="stringliteral">"PMIX_TIME"</span>,</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="stringliteral">"PMIX_STATUS"</span>,</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="stringliteral">"PMIX_VALUE"</span>,</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="stringliteral">"PMIX_PROC"</span>,</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="stringliteral">"PMIX_APP"</span>,</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="stringliteral">"PMIX_INFO"</span>,</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="stringliteral">"PMIX_PDATA"</span>,</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="stringliteral">"PMIX_BUFFER"</span>,</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"PMIX_BYTE_OBJECT"</span>,</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="stringliteral">"PMIX_KVAL"</span>,</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="stringliteral">"PMIX_MODEX"</span>,</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="stringliteral">"PMIX_PERSIST"</span>,</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="stringliteral">"PMIX_POINTER"</span>,</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="stringliteral">"PMIX_SCOPE"</span>,</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="stringliteral">"PMIX_DATA_RANGE"</span>,</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="stringliteral">"PMIX_COMMAND"</span>,</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="stringliteral">"PMIX_INFO_DIRECTIVES"</span>,</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="stringliteral">"PMIX_DATA_TYPE"</span>,</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="stringliteral">"PMIX_PROC_STATE"</span>,</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="stringliteral">"PMIX_PROC_INFO"</span>,</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="stringliteral">"PMIX_DATA_ARRAY"</span>,</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="stringliteral">"PMIX_PROC_RANK"</span>,</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="stringliteral">"PMIX_QUERY"</span>,</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="stringliteral">"PMIX_COMPRESSED_STRING"</span>,</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="stringliteral">"PMIX_ALLOC_DIRECTIVE"</span>,</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="stringliteral">"PMIX_INFO_ARRAY"</span>,</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="stringliteral">"PMIX_IOF_CHANNEL"</span>,</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="stringliteral">"PMIX_ENVAR"</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> };</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">enum class</span> Command : int</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  general = PMIX_EXTERNAL_ERR_BASE,</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  error = PMIX_EXTERNAL_ERR_BASE - 1</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">class </span>Commands</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> {</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  Commands(<span class="keyword">const</span> proc& process)</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  : fProcess(process)</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  , fSubscribed(false)</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classpmix_1_1Commands.html"> 88</a></span>  {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  ~<a class="code" href="classpmix_1_1Commands.html">Commands</a>()</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  Unsubscribe();</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">void</span> Subscribe(std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& msg, <span class="keyword">const</span> proc& sender)> callback)</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">using namespace </span>std::placeholders;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  LOG(debug) << <span class="stringliteral">"PMIxCommands: Subscribing..."</span>;</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  fCallback = callback;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  std::array<pmix::status, 1> codes;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  codes[0] = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(pmix::Command::general);</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  PMIX_INFO_LOAD(&(fInfos[0]), PMIX_EVENT_RETURN_OBJECT, <span class="keyword">this</span>, PMIX_POINTER);</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  PMIx_Register_event_handler(codes.data(), codes.size(),</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  fInfos.data(), fInfos.size(),</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  &Commands::Handler,</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  &Commands::EventHandlerRegistration,</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  fBlocker.Wait();</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  LOG(debug) << <span class="stringliteral">"PMIxCommands: Subscribing complete!"</span>;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">void</span> Unsubscribe()</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (fSubscribed) {</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  LOG(debug) << <span class="stringliteral">"PMIxCommands: Unsubscribing..."</span>;</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  PMIx_Deregister_event_handler(fHandlerRef, &Commands::EventHandlerDeregistration, <span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  fBlocker.Wait();</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  LOG(debug) << <span class="stringliteral">"PMIxCommands: Unsubscribing complete!"</span>;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  LOG(debug) << <span class="stringliteral">"Unsubscribe() is called while no subscription is active"</span>;</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">struct </span>Holder</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  Holder() : fData(nullptr) {}</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  ~Holder() { PMIX_DATA_ARRAY_FREE(fData); }</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  std::vector<pmix::info> fInfos;</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structpmix_1_1Commands_1_1Holder.html"> 135</a></span>  pmix_data_array_t* fData;</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  };</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">void</span> Send(<span class="keyword">const</span> std::string& msg)</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  std::vector<pmix::info>* infos = <span class="keyword">new</span> std::vector<pmix::info>();</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  infos->emplace_back(<span class="stringliteral">"fairmq.cmd"</span>, msg);</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  PMIx_Notify_event(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(pmix::Command::general),</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  &fProcess,</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  PMIX_RANGE_NAMESPACE,</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  infos->data(), infos->size(),</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  &Commands::OpCompleteCallback<std::vector<pmix::info>>,</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  infos);</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">void</span> Send(<span class="keyword">const</span> std::string& msg, <a class="code" href="structpmix_1_1rank.html">rank</a> <a class="code" href="structpmix_1_1rank.html">rank</a>)</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="structpmix_1_1proc.html">pmix::proc</a> destination(fProcess);</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  destination.rank = <a class="code" href="structpmix_1_1rank.html">rank</a>;</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  Send(msg, {destination});</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">void</span> Send(<span class="keyword">const</span> std::string& msg, <span class="keyword">const</span> std::vector<proc>& destination)</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  std::unique_ptr<Holder> holder = std::make_unique<Holder>();</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  PMIX_DATA_ARRAY_CREATE(holder->fData, destination.size(), PMIX_PROC);</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  memcpy(holder->fData->array, destination.data(), destination.size() * <span class="keyword">sizeof</span>(pmix_proc_t));</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// LOG(warn) << "OLOG: " << msg << " > " << static_cast<pmix_proc_t*>(holder->fData->array)[0].nspace << ": " << static_cast<pmix_proc_t*>(holder->fData->array)[0].rank;</span></div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  holder->fInfos.emplace_back(PMIX_EVENT_CUSTOM_RANGE, holder->fData);</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// LOG(warn) << msg << " // packed range: " << static_cast<pmix_proc_t*>(static_cast<pmix_data_array_t*>(holder->fInfos.at(0).value.data.darray)->array)[0].nspace << "_" << static_cast<pmix_proc_t*>(static_cast<pmix_data_array_t*>(holder->fInfos.at(0).value.data.darray)->array)[0].rank;</span></div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// LOG(warn) << msg << " // packed range.type: " << pmix::typeNames.at(holder->fInfos.at(0).value.type);</span></div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// LOG(warn) << msg << " // packed range.array.type: " << pmix::typeNames.at(static_cast<pmix_data_array_t*>(holder->fInfos.at(0).value.data.darray)->type);</span></div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// LOG(warn) << msg << " // packed range.array.size: " << static_cast<pmix_data_array_t*>(holder->fInfos.at(0).value.data.darray)->size;</span></div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// LOG(warn) << holder->fInfos.size();</span></div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  holder->fInfos.emplace_back(<span class="stringliteral">"fairmq.cmd"</span>, msg);</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// LOG(warn) << msg << " // packed msg: " << holder->fInfos.at(1).value.data.string;</span></div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// LOG(warn) << msg << " // packed msg.type: " << pmix::typeNames.at(holder->fInfos.at(1).value.type);</span></div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// LOG(warn) << holder->fInfos.size();</span></div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  PMIx_Notify_event(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(pmix::Command::general),</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  &fProcess,</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  PMIX_RANGE_CUSTOM,</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  holder->fInfos.data(), holder->fInfos.size(),</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  &Commands::OpCompleteCallback<Holder>,</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  holder.get());</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  holder.release();</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> EventHandlerRegistration(pmix_status_t s, <span class="keywordtype">size_t</span> handlerRef, <span class="keywordtype">void</span>* obj)</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">if</span> (s == PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  LOG(debug) << <span class="stringliteral">"Successfully registered event handler, reference = "</span> << <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span> <span class="keywordtype">long</span><span class="keyword">></span>(handlerRef);</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fHandlerRef = handlerRef;</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fSubscribed = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  LOG(error) << <span class="stringliteral">"Could not register PMIx event handler, status = "</span> << s;</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fBlocker.Signal();</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> EventHandlerDeregistration(pmix_status_t s, <span class="keywordtype">void</span>* obj)</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (s == PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  LOG(debug) << <span class="stringliteral">"Successfully deregistered event handler, reference = "</span> << <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fHandlerRef;</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fSubscribed = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  LOG(error) << <span class="stringliteral">"Could not deregister PMIx event handler, reference = "</span> << <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fHandlerRef << <span class="stringliteral">", status = "</span> << s;</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fBlocker.Signal();</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> OpCompleteCallback(pmix_status_t s, <span class="keywordtype">void</span>* data)</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (s == PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// LOG(info) << "Operation completed successfully";</span></div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  LOG(error) << <span class="stringliteral">"Could not complete operation, status = "</span> << s;</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">if</span> (data) {</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">// LOG(warn) << "Destroying event data...";</span></div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">delete</span> <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(data);</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> Handler(<span class="keywordtype">size_t</span> handlerId,</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  pmix_status_t s,</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">const</span> pmix_proc_t* src,</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  pmix_info_t info[], <span class="keywordtype">size_t</span> ninfo,</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  pmix_info_t[] <span class="comment">/* results */</span>, <span class="keywordtype">size_t</span> nresults,</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  pmix_event_notification_cbfunc_fn_t cbfunc,</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordtype">void</span>* cbdata)</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  ss << <span class="stringliteral">"Event handler called with "</span></div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  << <span class="stringliteral">"status: "</span> << s << <span class="stringliteral">", "</span></div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  << <span class="stringliteral">"source: "</span> << src->nspace << <span class="stringliteral">"_"</span> << src->rank << <span class="stringliteral">", "</span></div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  << <span class="stringliteral">"ninfo: "</span> << ninfo << <span class="stringliteral">", "</span></div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  << <span class="stringliteral">"nresults: "</span> << nresults << <span class="stringliteral">", "</span></div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  << <span class="stringliteral">"handlerId: "</span> << handlerId;</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  std::string msg;</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  Commands* obj = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (ninfo > 0) {</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  ss << <span class="stringliteral">":\n"</span>;</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < ninfo; ++i) {</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  ss << <span class="stringliteral">" ["</span> << i << <span class="stringliteral">"]: key: '"</span> << info[i].key</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  << <span class="stringliteral">"', value: '"</span> << pmix::get_value_str(info[i].value)</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  << <span class="stringliteral">"', value.type: '"</span> << pmix::typeNames.at(info[i].value.type)</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  << <span class="stringliteral">"', flags: "</span> << info[i].flags;</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  </div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span> (std::strcmp(info[i].key, <span class="stringliteral">"fairmq.cmd"</span>) == 0) {</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  msg = pmix::get_value_str(info[i].value);</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (std::strcmp(info[i].key, PMIX_EVENT_RETURN_OBJECT) == 0) {</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  obj = <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(info[i].value.data.ptr);</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  </div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">if</span> (i < ninfo - 1) {</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  ss << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (obj != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span> (<span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fProcess.rank != src->rank) {</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// LOG(warn) << ss.str();</span></div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">static_cast<</span>Commands*<span class="keyword">></span>(obj)->fCallback(msg, proc(<span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(src->nspace), rank(src->rank)));</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// LOG(trace) << "suppressing message from itself";</span></div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  LOG(ERROR) << <span class="stringliteral">"ERROR"</span>;</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (cbfunc != <span class="keyword">nullptr</span>) {</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  cbfunc(PMIX_SUCCESS, <span class="keyword">nullptr</span>, 0, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, cbdata);</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> proc& fProcess;</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordtype">size_t</span> fHandlerRef;</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  std::function<void(<span class="keyword">const</span> std::string& msg, <span class="keyword">const</span> proc& sender)> fCallback;</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  std::array<pmix_info_t, 1> fInfos;</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">bool</span> fSubscribed;</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">fair::mq::tools::SharedSemaphore</a> fBlocker;</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> };</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> } <span class="comment">/* namespace pmix */</span></div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor">#endif </span><span class="comment">/* PMIXCOMMANDS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructpmix_1_1rank_html"><div class="ttname"><a href="structpmix_1_1rank.html">pmix::rank</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:49</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1proc_html"><div class="ttname"><a href="structpmix_1_1proc.html">pmix::proc</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:68</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1SharedSemaphore_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">fair::mq::tools::SharedSemaphore</a></div><div class="ttdoc">A simple copyable blocking semaphore.</div><div class="ttdef"><b>Definition:</b> Semaphore.h:51</div></div>
|
||||
<div class="ttc" id="aclasspmix_1_1Commands_html"><div class="ttname"><a href="classpmix_1_1Commands.html">pmix::Commands</a></div><div class="ttdef"><b>Definition:</b> PMIxCommands.h:89</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
168
v1.4.33/PMIxPlugin_8h_source.html
Normal file
@@ -0,0 +1,168 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/PMIx/PMIxPlugin.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li><li class="navelem"><a class="el" href="dir_066f3fccd7659c68e6e82b743d15481d.html">PMIx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PMIxPlugin.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINS_PMIX</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINS_PMIX</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "PMIx.hpp"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "PMIxCommands.h"</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/Plugin.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/Version.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <sstream></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <sys/types.h></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <unistd.h></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span>fair::mq::plugins</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span>PMIxPlugin : <span class="keyword">public</span> Plugin</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  PMIxPlugin(<span class="keyword">const</span> std::string& name,</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">const</span> Plugin::Version version,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">const</span> std::string& maintainer,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1plugins_1_1PMIxPlugin.html"> 36</a></span>  <span class="keyword">const</span> std::string& homepage,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>* pluginServices);</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  ~<a class="code" href="classfair_1_1mq_1_1plugins_1_1PMIxPlugin.html">PMIxPlugin</a>();</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">auto</span> PMIxClient() const -> std::<span class="keywordtype">string</span> { <span class="keywordflow">return</span> fPMIxClient; };</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="structpmix_1_1proc.html">pmix::proc</a> fProcess;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  pid_t fPid;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  std::string fPMIxClient;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::string fDeviceId;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classpmix_1_1Commands.html">pmix::Commands</a> fCommands;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  std::set<uint32_t> fStateChangeSubscribers;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  uint32_t fLastExternalController;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">bool</span> fExitingAckedByLastExternalController;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  std::condition_variable fExitingAcked;</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  std::mutex fStateChangeSubscriberMutex;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  DeviceState fCurrentState;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  DeviceState fLastState;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">auto</span> Init() -> <a class="code" href="structpmix_1_1proc.html">pmix::proc</a>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">auto</span> Publish() -> void;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">auto</span> Fence() -> void;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">auto</span> Fence(<span class="keyword">const</span> std::string& label) -> void;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">auto</span> Lookup() -> void;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">auto</span> SubscribeForCommands() -> void;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">auto</span> WaitForExitingAck() -> void;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> };</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> Plugin::ProgOptions PMIxProgramOptions()</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  boost::program_options::options_description options(<span class="stringliteral">"PMIx Plugin"</span>);</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  options.add_options()</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  (<span class="stringliteral">"pmix-dummy"</span>, boost::program_options::value<int>()->default_value(0), <span class="stringliteral">"Dummy."</span>);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> options;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> REGISTER_FAIRMQ_PLUGIN(</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  PMIxPlugin, <span class="comment">// Class name</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  pmix, <span class="comment">// Plugin name (string, lower case chars only)</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  (Plugin::Version{FAIRMQ_VERSION_MAJOR,</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  FAIRMQ_VERSION_MINOR,</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  FAIRMQ_VERSION_PATCH}), <span class="comment">// Version</span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="stringliteral">"FairRootGroup <fairroot@gsi.de>"</span>, <span class="comment">// Maintainer</span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="stringliteral">"https://github.com/FairRootGroup/FairMQ"</span>, <span class="comment">// Homepage</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  PMIxProgramOptions <span class="comment">// custom program options for the plugin</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> )</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> } <span class="comment">// namespace fair::mq::plugins</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINS_PMIX */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html">fair::mq::PluginServices</a></div><div class="ttdoc">Facilitates communication between devices and plugins.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:46</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1proc_html"><div class="ttname"><a href="structpmix_1_1proc.html">pmix::proc</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:68</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1plugins_1_1PMIxPlugin_html"><div class="ttname"><a href="classfair_1_1mq_1_1plugins_1_1PMIxPlugin.html">fair::mq::plugins::PMIxPlugin</a></div><div class="ttdef"><b>Definition:</b> PMIxPlugin.h:37</div></div>
|
||||
<div class="ttc" id="aclasspmix_1_1Commands_html"><div class="ttname"><a href="classpmix_1_1Commands.html">pmix::Commands</a></div><div class="ttdef"><b>Definition:</b> PMIxCommands.h:89</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
397
v1.4.33/PMIx_8hpp_source.html
Normal file
@@ -0,0 +1,397 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/plugins/PMIx/PMIx.hpp Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_c2fe5dddc7ffa165dbdae926a051158e.html">plugins</a></li><li class="navelem"><a class="el" href="dir_066f3fccd7659c68e6e82b743d15481d.html">PMIx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PMIx.hpp</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef PMIX_HPP</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define PMIX_HPP</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <array></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <cstring></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <limits></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <pmix.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <sstream></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <type_traits></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// C++ PMIx v2.2 API</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span>pmix</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">struct </span>runtime_error : std::runtime_error</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">using</span> std::runtime_error::runtime_error;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> };</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using</span> status = pmix_status_t;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structpmix_1_1runtime__error.html"> 35</a></span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">using</span> nspace = pmix_nspace_t;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using</span> key = pmix_key_t;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">using</span> data_type = pmix_data_type_t;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span><a class="code" href="structpmix_1_1rank.html">rank</a></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">enum</span> named : pmix_rank_t</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  undef = PMIX_RANK_UNDEF,</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  wildcard = PMIX_RANK_WILDCARD,</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structpmix_1_1rank.html"> 48</a></span>  local_node = PMIX_RANK_LOCAL_NODE</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  };</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">explicit</span> <a class="code" href="structpmix_1_1rank.html">rank</a>(pmix_rank_t r)</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  : m_value(r)</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {}</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">operator</span> pmix_rank_t() { <span class="keywordflow">return</span> m_value; }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  pmix_rank_t m_value;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">struct </span>proc : pmix_proc_t</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  proc() { PMIX_PROC_CONSTRUCT(<span class="keyword">static_cast<</span>pmix_proc_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  ~proc() { PMIX_PROC_DESTRUCT(<span class="keyword">static_cast<</span>pmix_proc_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  proc(pmix::nspace ns, <a class="code" href="structpmix_1_1rank.html">pmix::rank</a> r)</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structpmix_1_1proc.html"> 67</a></span>  {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  PMIX_PROC_LOAD(<span class="keyword">static_cast<</span>pmix_proc_t*<span class="keyword">></span>(<span class="keyword">this</span>), ns, <span class="keyword">static_cast<</span>pmix_rank_t<span class="keyword">></span>(r));</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">friend</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> <a class="code" href="structpmix_1_1proc.html">proc</a>& p)</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> os << p.nspace << <span class="stringliteral">"_"</span> << p.rank;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> };</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">struct </span>value : pmix_value_t</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  value() { PMIX_VALUE_CONSTRUCT(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  ~value() { PMIX_VALUE_DESTRUCT(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  value(<span class="keyword">const</span> value& rhs)</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structpmix_1_1value.html"> 83</a></span>  {</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  status rc;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">auto</span> lhs(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>));</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  PMIX_VALUE_XFER(rc, lhs, <span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">const_cast<</span><a class="code" href="structpmix_1_1value.html">value</a>*<span class="keyword">></span>(&rhs)));</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">throw</span> <a class="code" href="structpmix_1_1runtime__error.html">runtime_error</a>(<span class="stringliteral">"pmix::value copy ctor failed: rc="</span> + rc);</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">explicit</span> <a class="code" href="structpmix_1_1value.html">value</a>(T)</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">throw</span> <a class="code" href="structpmix_1_1runtime__error.html">runtime_error</a>(<span class="stringliteral">"Given value type not supported or not yet implemented."</span>);</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keyword">explicit</span> value(<span class="keyword">const</span> <span class="keywordtype">char</span>* val)</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  PMIX_VALUE_LOAD(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>), <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(val), PMIX_STRING);</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">explicit</span> value(<span class="keyword">const</span> std::string& val)</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  PMIX_VALUE_LOAD(</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>), <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(val.c_str()), PMIX_STRING);</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">explicit</span> value(<span class="keywordtype">int</span> val)</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  PMIX_VALUE_LOAD(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>), &val, PMIX_INT);</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">explicit</span> value(pmix_data_array_t* val)</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  PMIX_VALUE_LOAD(<span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(<span class="keyword">this</span>), val, PMIX_DATA_ARRAY);</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> };</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">struct </span>info : pmix_info_t</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  info() { PMIX_INFO_CONSTRUCT(<span class="keyword">static_cast<</span>pmix_info_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  ~info() { PMIX_INFO_DESTRUCT(<span class="keyword">static_cast<</span>pmix_info_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structpmix_1_1info.html"> 127</a></span>  <a class="code" href="structpmix_1_1info.html">info</a>(<span class="keyword">const</span> std::string& k, Args&&... args)</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  (void)strncpy(key, k.c_str(), PMIX_MAX_KEYLEN);</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  flags = 0;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="structpmix_1_1value.html">pmix::value</a> rhs(std::forward<Args>(args)...);</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">auto</span> lhs(&<a class="code" href="structpmix_1_1value.html">value</a>);</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  status rc;</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  PMIX_VALUE_XFER(rc, lhs, <span class="keyword">static_cast<</span>pmix_value_t*<span class="keyword">></span>(&rhs));</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">throw</span> <a class="code" href="structpmix_1_1runtime__error.html">runtime_error</a>(<span class="stringliteral">"pmix::info ctor failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">friend</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> <a class="code" href="structpmix_1_1info.html">info</a>& i)</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"key="</span> << i.key << <span class="stringliteral">",value='"</span> << i.value.data.string << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  info(<span class="keyword">const</span> info& rhs)</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  PMIX_INFO_XFER(<span class="keyword">static_cast<</span>pmix_info_t*<span class="keyword">></span>(<span class="keyword">this</span>),</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">static_cast<</span>pmix_info_t*<span class="keyword">></span>(<span class="keyword">const_cast<</span>info*<span class="keyword">></span>(&rhs)));</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> };</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">struct </span>pdata : pmix_pdata_t</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> {</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  pdata() { PMIX_PDATA_CONSTRUCT(<span class="keyword">static_cast<</span>pmix_pdata_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  ~pdata() { PMIX_PDATA_DESTRUCT(<span class="keyword">static_cast<</span>pmix_pdata_t*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  pdata(<span class="keyword">const</span> pdata& rhs)</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structpmix_1_1pdata.html"> 160</a></span>  {</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  PMIX_PDATA_XFER(<span class="keyword">static_cast<</span>pmix_pdata_t*<span class="keyword">></span>(<span class="keyword">this</span>),</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">static_cast<</span>pmix_pdata_t*<span class="keyword">></span>(<span class="keyword">const_cast<</span><a class="code" href="structpmix_1_1pdata.html">pdata</a>*<span class="keyword">></span>(&rhs)));</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">auto</span> set_key(<span class="keyword">const</span> std::string& new_key) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  (void)strncpy(key, new_key.c_str(), PMIX_MAX_KEYLEN);</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> };</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">auto</span> init(<span class="keyword">const</span> std::vector<info>& info = {}) -> proc</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  proc res;</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  status rc;</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  rc = PMIx_Init(&res, <span class="keyword">const_cast<</span><a class="code" href="structpmix_1_1info.html">pmix::info</a>*<span class="keyword">></span>(info.data()), info.size());</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">throw</span> runtime_error(<span class="stringliteral">"pmix::init() failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">auto</span> initialized() -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> !!PMIx_Initialized(); }</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">auto</span> get_version() -> std::string { <span class="keywordflow">return</span> {PMIx_Get_version()}; }</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">auto</span> finalize(<span class="keyword">const</span> std::vector<info>& info = {}) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> {</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  status rc;</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  rc = PMIx_Finalize(info.data(), info.size());</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">throw</span> runtime_error(<span class="stringliteral">"pmix::finalize() failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> }</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">auto</span> publish(<span class="keyword">const</span> std::vector<info>& info) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  status rc;</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  rc = PMIx_Publish(info.data(), info.size());</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">throw</span> runtime_error(<span class="stringliteral">"pmix::publish() failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">auto</span> fence(<span class="keyword">const</span> std::vector<proc>& procs = {}, <span class="keyword">const</span> std::vector<info>& info = {}) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  status rc;</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  rc = PMIx_Fence(procs.data(), procs.size(), info.data(), info.size());</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">throw</span> runtime_error(<span class="stringliteral">"pmix::fence() failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">auto</span> lookup(std::vector<pdata>& pdata, <span class="keyword">const</span> std::vector<info>& info = {}) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> {</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  status rc;</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  rc = PMIx_Lookup(pdata.data(), pdata.size(), info.data(), info.size());</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span> (rc != PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">throw</span> runtime_error(<span class="stringliteral">"pmix::lookup() failed: rc="</span> + std::to_string(rc));</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> std::string get_info(<span class="keyword">const</span> std::string& name, <a class="code" href="structpmix_1_1proc.html">pmix::proc</a>& process)</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> {</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  pmix_value_t* v;</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  pmix::status rc = PMIx_Get(&process, name.c_str(), <span class="keyword">nullptr</span>, 0, &v);</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (rc == PMIX_SUCCESS) {</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">switch</span> (v->type) {</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">case</span> PMIX_SIZE: ss << static_cast<size_t>(v->data.size) << <span class="stringliteral">" (size_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">case</span> PMIX_INT: ss << static_cast<int>(v->data.integer) << <span class="stringliteral">" (int)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">case</span> PMIX_INT8: ss << static_cast<int8_t>(v->data.int8) << <span class="stringliteral">" (int8_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">case</span> PMIX_INT16: ss << static_cast<int16_t>(v->data.int16) << <span class="stringliteral">" (int16_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">case</span> PMIX_INT32: ss << static_cast<int32_t>(v->data.int32) << <span class="stringliteral">" (int32_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">case</span> PMIX_INT64: ss << static_cast<int64_t>(v->data.int64) << <span class="stringliteral">" (int64_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">case</span> PMIX_UINT: ss << static_cast<unsigned int>(v->data.uint) << <span class="stringliteral">" (unsigned int)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">case</span> PMIX_UINT8: ss << static_cast<uint8_t>(v->data.uint8) << <span class="stringliteral">" (uint8_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">case</span> PMIX_UINT16: ss << static_cast<uint16_t>(v->data.uint16) << <span class="stringliteral">" (uint16_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">case</span> PMIX_UINT32: ss << static_cast<uint32_t>(v->data.uint32) << <span class="stringliteral">" (uint32_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">case</span> PMIX_UINT64: ss << static_cast<uint64_t>(v->data.uint64) << <span class="stringliteral">" (uint64_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">case</span> PMIX_FLOAT: ss << static_cast<float>(v->data.fval) << <span class="stringliteral">" (float)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">case</span> PMIX_DOUBLE: ss << static_cast<double>(v->data.dval) << <span class="stringliteral">" (double)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">case</span> PMIX_PID: ss << static_cast<pid_t>(v->data.pid) << <span class="stringliteral">" (pid_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">case</span> PMIX_STRING: ss << static_cast<char*>(v->data.string) << <span class="stringliteral">" (string)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">case</span> PMIX_PROC_RANK: ss << static_cast<uint32_t>(v->data.rank) << <span class="stringliteral">" (pmix_rank_t)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">case</span> PMIX_PROC: ss << <span class="stringliteral">"proc.nspace: "</span> << <span class="keyword">static_cast<</span>pmix_proc_t*<span class="keyword">></span>(v->data.proc)->nspace</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  << <span class="stringliteral">", proc.rank: "</span> << <span class="keyword">static_cast<</span>pmix_proc_t*<span class="keyword">></span>(v->data.proc)->rank << <span class="stringliteral">" (pmix_proc_t*)"</span>; <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">default</span>:</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  ss << <span class="stringliteral">"unknown type: "</span> << v->type;</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> ss.str();</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rc == PMIX_ERR_NOT_FOUND) {</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// LOG(error) << "PMIx_Get failed: PMIX_ERR_NOT_FOUND";</span></div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// LOG(error) << "PMIx_Get failed: " << rc;</span></div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> <span class="stringliteral">"<undefined>"</span>;</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> }</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> std::string get_value_str(<span class="keyword">const</span> pmix_value_t& v)</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> {</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">switch</span> (v.type) {</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">case</span> PMIX_BOOL: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">bool</span><span class="keyword">></span>(v.data.flag));</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">case</span> PMIX_SIZE: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(v.data.size));</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">case</span> PMIX_INT: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(v.data.integer));</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">case</span> PMIX_INT8: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>int8_t<span class="keyword">></span>(v.data.int8));</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">case</span> PMIX_INT16: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>int16_t<span class="keyword">></span>(v.data.int16));</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">case</span> PMIX_INT32: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>int32_t<span class="keyword">></span>(v.data.int32));</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">case</span> PMIX_INT64: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>int64_t<span class="keyword">></span>(v.data.int64));</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">case</span> PMIX_UINT: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">></span>(v.data.uint));</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">case</span> PMIX_UINT8: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(v.data.uint8));</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">case</span> PMIX_UINT16: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>uint16_t<span class="keyword">></span>(v.data.uint16));</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">case</span> PMIX_UINT32: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(v.data.uint32));</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">case</span> PMIX_UINT64: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>uint64_t<span class="keyword">></span>(v.data.uint64));</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">case</span> PMIX_FLOAT: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(v.data.fval));</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">case</span> PMIX_DOUBLE: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(v.data.dval));</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">case</span> PMIX_PID: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>pid_t<span class="keyword">></span>(v.data.pid));</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">case</span> PMIX_STRING: <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(v.data.string);</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">case</span> PMIX_PROC_RANK: <span class="keywordflow">return</span> std::to_string(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(v.data.rank));</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">case</span> PMIX_POINTER: { std::stringstream ss; ss << static_cast<void*>(v.data.ptr); <span class="keywordflow">return</span> ss.str(); }</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">case</span> PMIX_DATA_ARRAY: {</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">if</span> (v.data.darray->type == PMIX_PROC) {</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  ss << <span class="stringliteral">"["</span>;</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < v.data.darray->size; ++i) {</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  ss << static_cast<pmix_proc_t*>(<span class="keyword">static_cast<</span>pmix_data_array_t*<span class="keyword">></span>(v.data.darray)->array)[0].nspace;</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  ss << <span class="stringliteral">"_"</span>;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  ss << static_cast<pmix_proc_t*>(<span class="keyword">static_cast<</span>pmix_data_array_t*<span class="keyword">></span>(v.data.darray)->array)[0].rank;</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (i < v.data.darray->size - 1) {</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  ss << <span class="stringliteral">","</span>;</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  ss << <span class="stringliteral">"]"</span>;</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> ss.str();</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> <span class="stringliteral">"UNKNOWN TYPE IN DATA ARRAY"</span>;</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <span class="stringliteral">"UNKNOWN TYPE"</span>;</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> } <span class="comment">/* namespace pmix */</span></div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#endif </span><span class="comment">/* PMIX_HPP */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructpmix_1_1rank_html"><div class="ttname"><a href="structpmix_1_1rank.html">pmix::rank</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:49</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1proc_html"><div class="ttname"><a href="structpmix_1_1proc.html">pmix::proc</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:68</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1info_html"><div class="ttname"><a href="structpmix_1_1info.html">pmix::info</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:128</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1runtime__error_html"><div class="ttname"><a href="structpmix_1_1runtime__error.html">pmix::runtime_error</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:36</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1value_html"><div class="ttname"><a href="structpmix_1_1value.html">pmix::value</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:84</div></div>
|
||||
<div class="ttc" id="astructpmix_1_1pdata_html"><div class="ttname"><a href="structpmix_1_1pdata.html">pmix::pdata</a></div><div class="ttdef"><b>Definition:</b> PMIx.hpp:161</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
201
v1.4.33/PluginManager_8h_source.html
Normal file
@@ -0,0 +1,201 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/PluginManager.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PluginManager.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINMANAGER_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINMANAGER_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/Plugin.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/PluginServices.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define BOOST_FILESYSTEM_VERSION 3</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define BOOST_FILESYSTEM_NO_DEPRECATED</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <boost/optional.hpp></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/program_options.hpp></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/dll/import.hpp></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <boost/dll/shared_library.hpp></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <boost/dll/runtime_symbol_info.hpp></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <utility></span> <span class="comment">// forward</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginManager.html"> 46</a></span> <span class="keyword">class </span><a class="code" href="classfair_1_1mq_1_1PluginManager.html">PluginManager</a></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">using</span> PluginFactory = std::unique_ptr<fair::mq::Plugin>(<a class="code" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>&);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classfair_1_1mq_1_1PluginManager.html">PluginManager</a>();</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classfair_1_1mq_1_1PluginManager.html">PluginManager</a>(<span class="keyword">const</span> std::vector<std::string> args);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  ~<a class="code" href="classfair_1_1mq_1_1PluginManager.html">PluginManager</a>()</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  LOG(debug) << <span class="stringliteral">"Shutting down Plugin Manager"</span>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">auto</span> SetSearchPaths(<span class="keyword">const</span> std::vector<boost::filesystem::path>&) -> void;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">auto</span> AppendSearchPath(<span class="keyword">const</span> boost::filesystem::path&) -> void;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">auto</span> PrependSearchPath(<span class="keyword">const</span> boost::filesystem::path&) -> void;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">auto</span> SearchPaths() <span class="keyword">const</span> -> <span class="keyword">const</span> std::vector<boost::filesystem::path>& { <span class="keywordflow">return</span> fSearchPaths; }</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PluginManager_1_1BadSearchPath.html"> 63</a></span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1PluginManager_1_1BadSearchPath.html">BadSearchPath</a> : std::invalid_argument { <span class="keyword">using</span> std::invalid_argument::invalid_argument; };</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">auto</span> LoadPlugin(<span class="keyword">const</span> std::string& pluginName) -> void;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">auto</span> LoadPlugins(<span class="keyword">const</span> std::vector<std::string>& pluginNames) -> <span class="keywordtype">void</span> { <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>& pluginName : pluginNames) { LoadPlugin(pluginName); } }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PluginManager_1_1PluginLoadError.html"> 67</a></span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1PluginManager_1_1PluginLoadError.html">PluginLoadError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">auto</span> InstantiatePlugins() -> void;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PluginManager_1_1PluginInstantiationError.html"> 69</a></span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1PluginManager_1_1PluginInstantiationError.html">PluginInstantiationError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">static</span> <span class="keyword">auto</span> ProgramOptions() -> boost::program_options::options_description;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PluginManager_1_1ProgramOptionsParseError.html"> 72</a></span>  <span class="keyword">struct </span><a class="code" href="structfair_1_1mq_1_1PluginManager_1_1ProgramOptionsParseError.html">ProgramOptionsParseError</a> : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">static</span> <span class="keyword">auto</span> LibPrefix() -> <span class="keyword">const</span> std::string& { <span class="keywordflow">return</span> fgkLibPrefix; }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">auto</span> ForEachPlugin(std::function<<span class="keywordtype">void</span> (<a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>&)> func) -> <span class="keywordtype">void</span> { <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>& p : fPluginOrder) { func(*fPlugins[p]); } }</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">auto</span> ForEachPluginProgOptions(std::function<<span class="keywordtype">void</span> (boost::program_options::options_description)> func) <span class="keyword">const</span> -> <span class="keywordtype">void</span> { <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>& pair : fPluginProgOptions) { func(pair.second); } }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">auto</span> EmplacePluginServices(Args&&... args) -> <span class="keywordtype">void</span> { fPluginServices = std::make_unique<PluginServices>(std::forward<Args>(args)...); }</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">auto</span> WaitForPluginsToReleaseDeviceControl() -> <span class="keywordtype">void</span> { fPluginServices->WaitForReleaseDeviceControl(); }</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">static</span> <span class="keyword">auto</span> ValidateSearchPath(<span class="keyword">const</span> boost::filesystem::path&) -> void;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">auto</span> LoadPluginPrelinkedDynamic(<span class="keyword">const</span> std::string& pluginName) -> void;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">auto</span> LoadPluginDynamic(<span class="keyword">const</span> std::string& pluginName) -> void;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">auto</span> LoadPluginStatic(<span class="keyword">const</span> std::string& pluginName) -> void;</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">auto</span> LoadSymbols(<span class="keyword">const</span> std::string& pluginName, Args&&... args) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">using namespace </span>boost::dll;</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">using</span> fair::mq::tools::ToString;</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">auto</span> lib = shared_library{std::forward<Args>(args)...};</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  fgDLLKeepAlive.push_back(lib);</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  fPluginFactories[pluginName] = import_alias<PluginFactory>(</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  shared_library{lib},</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  ToString(<span class="stringliteral">"make_"</span>, pluginName, <span class="stringliteral">"_plugin"</span>)</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  );</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  fPluginProgOptions.insert({</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  pluginName,</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  lib.get_alias<Plugin::ProgOptions()>(ToString(<span class="stringliteral">"get_"</span>, pluginName, <span class="stringliteral">"_plugin_progoptions"</span>))().value()</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  });</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> boost::bad_optional_access& e) { <span class="comment">/* just ignore, if no prog options are declared */</span> }</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">auto</span> InstantiatePlugin(<span class="keyword">const</span> std::string& pluginName) -> void;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">static</span> <span class="keyword">const</span> std::string fgkLibPrefix;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  std::vector<boost::filesystem::path> fSearchPaths;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">static</span> std::vector<boost::dll::shared_library> fgDLLKeepAlive;</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  std::map<std::string, std::function<PluginFactory>> fPluginFactories;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  std::unique_ptr<PluginServices> fPluginServices;</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::map<std::string, std::unique_ptr<Plugin>> fPlugins;</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  std::vector<std::string> fPluginOrder;</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  std::map<std::string, boost::program_options::options_description> fPluginProgOptions;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }; <span class="comment">/* class PluginManager */</span></div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINMANAGER_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html">fair::mq::PluginServices</a></div><div class="ttdoc">Facilitates communication between devices and plugins.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:46</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PluginManager_1_1PluginInstantiationError_html"><div class="ttname"><a href="structfair_1_1mq_1_1PluginManager_1_1PluginInstantiationError.html">fair::mq::PluginManager::PluginInstantiationError</a></div><div class="ttdef"><b>Definition:</b> PluginManager.h:69</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginManager_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginManager.html">fair::mq::PluginManager</a></div><div class="ttdoc">manages and owns plugin instances</div><div class="ttdef"><b>Definition:</b> PluginManager.h:47</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PluginManager_1_1BadSearchPath_html"><div class="ttname"><a href="structfair_1_1mq_1_1PluginManager_1_1BadSearchPath.html">fair::mq::PluginManager::BadSearchPath</a></div><div class="ttdef"><b>Definition:</b> PluginManager.h:63</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PluginManager_1_1PluginLoadError_html"><div class="ttname"><a href="structfair_1_1mq_1_1PluginManager_1_1PluginLoadError.html">fair::mq::PluginManager::PluginLoadError</a></div><div class="ttdef"><b>Definition:</b> PluginManager.h:67</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1Plugin_html"><div class="ttname"><a href="classfair_1_1mq_1_1Plugin.html">fair::mq::Plugin</a></div><div class="ttdoc">Base class for FairMQ plugins.</div><div class="ttdef"><b>Definition:</b> Plugin.h:43</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PluginManager_1_1ProgramOptionsParseError_html"><div class="ttname"><a href="structfair_1_1mq_1_1PluginManager_1_1ProgramOptionsParseError.html">fair::mq::PluginManager::ProgramOptionsParseError</a></div><div class="ttdef"><b>Definition:</b> PluginManager.h:72</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
287
v1.4.33/PluginServices_8h_source.html
Normal file
@@ -0,0 +1,287 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/PluginServices.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PluginServices.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGINSERVICES_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGINSERVICES_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/States.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <FairMQDevice.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/ProgOptions.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <boost/optional.hpp></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <boost/optional/optional_io.hpp></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>PluginServices</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  PluginServices() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  PluginServices(ProgOptions& config, <a class="code" href="classFairMQDevice.html">FairMQDevice</a>& device)</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  : fConfig(config)</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html"> 45</a></span>  , fDevice(device)</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  , fDeviceController()</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  , fDeviceControllerMutex()</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  , fReleaseDeviceControlCondition()</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  ~<a class="code" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>()</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  LOG(debug) << <span class="stringliteral">"Shutting down Plugin Services"</span>;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  PluginServices(<span class="keyword">const</span> PluginServices&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  PluginServices operator=(<span class="keyword">const</span> PluginServices&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">using</span> DeviceState = fair::mq::State;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">using</span> DeviceStateTransition = fair::mq::Transition;</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// Control API</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">ToDeviceState</a>(<span class="keyword">const</span> std::string& state) -> DeviceState { <span class="keywordflow">return</span> GetState(state); }</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130"> 75</a></span>  <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">ToDeviceStateTransition</a>(<span class="keyword">const</span> std::string& transition) -> DeviceStateTransition { <span class="keywordflow">return</span> GetTransition(transition); }</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">ToStr</a>(DeviceState state) -> std::string { <span class="keywordflow">return</span> GetStateName(state); }</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0"> 81</a></span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">static</span> <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">ToStr</a>(DeviceStateTransition transition) -> std::string { <span class="keywordflow">return</span> GetTransitionName(transition); }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69"> 86</a></span>  </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ac93964a0e35ca0ed91bfbaab6405be82">GetCurrentDeviceState</a>() const -> DeviceState { <span class="keywordflow">return</span> fDevice.<a class="code" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a>(); }</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">TakeDeviceControl</a>(<span class="keyword">const</span> std::string& controller) -> void;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">struct </span>DeviceControlError : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">StealDeviceControl</a>(<span class="keyword">const</span> std::string& controller) -> void;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">ReleaseDeviceControl</a>(<span class="keyword">const</span> std::string& controller) -> void;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#aba93554ad3553a1d14d1affd85e1dea1">GetDeviceController</a>() const -> boost::optional<std::<span class="keywordtype">string</span>>;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  auto <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a79645639828ffaebcb81e29dc49ca6a4">WaitForReleaseDeviceControl</a>() -> <span class="keywordtype">void</span>;</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  auto <a class="code" href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">ChangeDeviceState</a>(const std::<span class="keywordtype">string</span>& controller, const DeviceStateTransition next) -> <span class="keywordtype">bool</span>;</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  auto <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">SubscribeToDeviceStateChange</a>(const std::<span class="keywordtype">string</span>& subscriber, std::function<<span class="keywordtype">void</span>(DeviceState <span class="comment">/*newState*/</span>)> callback) -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  fDevice.<a class="code" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a>(subscriber, [&,callback](fair::mq::State newState){</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  callback(newState);</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  });</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449"> 138</a></span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">UnsubscribeFromDeviceStateChange</a>(<span class="keyword">const</span> std::string& subscriber) -> <span class="keywordtype">void</span> { fDevice.<a class="code" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a>(subscriber); }</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// Config API</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">PropertyExists</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span> -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a95494fa84eea46fae7c666f0b82f7048">Count</a>(key) > 0; }</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">SetProperty</a>(<span class="keyword">const</span> std::string& key, T val) -> <span class="keywordtype">void</span> { fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(key, val); }</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">SetProperties</a>(<span class="keyword">const</span> fair::mq::Properties& props) { fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ae9f743fc76dee8566eb843640120e8f3">SetProperties</a>(props); }</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">bool</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">UpdateProperty</a>(<span class="keyword">const</span> std::string& key, T val) { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a95467b4bdb44c73cf960a60ff0457df2">UpdateProperty</a>(key, val); }</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">bool</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">UpdateProperties</a>(<span class="keyword">const</span> fair::mq::Properties& input) { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a6b014a8adcf80aa6fe8b3471e87f13e6">UpdateProperties</a>(input); }</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">DeleteProperty</a>(<span class="keyword">const</span> std::string& key) { fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a8e9af05d7ca5f7ac372971a9c7450195">DeleteProperty</a>(key); }</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197"> 178</a></span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">GetProperty</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span> -> T { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a><T>(key); }</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359"> 184</a></span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  T <a class="code" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">GetProperty</a>(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> T& ifNotFound)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a>(key, ifNotFound); }</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">GetPropertyAsString</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span> -> std::string { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(key); }</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">GetPropertyAsString</a>(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> std::string& ifNotFound) <span class="keyword">const</span> -> std::string { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(key, ifNotFound); }</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  fair::mq::Properties <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">GetProperties</a>(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a59e98e064e01188e0e52b9ae6f2f83a2">GetProperties</a>(q); }</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d"> 215</a></span>  fair::mq::Properties <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">GetPropertiesStartingWith</a>(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a69e8c85c5d7778f361244ae554af9f5b">GetPropertiesStartingWith</a>(q); }</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  std::map<std::string, std::string> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">GetPropertiesAsString</a>(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#abcbfe2950b7cf1239cbc7fcf085a8f01">GetPropertiesAsString</a>(q); }</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007"> 225</a></span>  std::map<std::string, std::string> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">GetPropertiesAsStringStartingWith</a>(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#aad0d6d0e82c486c9ba09ae5a3e0e4f25">GetPropertiesAsStringStartingWith</a>(q); }</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">GetChannelInfo</a>() const -> std::unordered_map<std::<span class="keywordtype">string</span>, <span class="keywordtype">int</span>> { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af890f73cfd75cdf5189be7fa936c7bf0">GetChannelInfo</a>(); }</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">GetPropertyKeys</a>() const -> std::vector<std::<span class="keywordtype">string</span>> { <span class="keywordflow">return</span> fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a67ef979cc694a245f28084389b8cffc0">GetPropertyKeys</a>(); }</div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">SubscribeToPropertyChange</a>(<span class="keyword">const</span> std::string& subscriber, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& key, T)> callback) <span class="keyword">const</span> -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#afbf4111312c5cd350dc7b924f8524c43">Subscribe</a><T>(subscriber, callback);</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">UnsubscribeFromPropertyChange</a>(<span class="keyword">const</span> std::string& subscriber) -> <span class="keywordtype">void</span> { fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af5afa61b1a9eebb4a9558da3fc8b576a">Unsubscribe</a><T>(subscriber); }</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">SubscribeToPropertyChangeAsString</a>(<span class="keyword">const</span> std::string& subscriber, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& key, std::string)> callback) <span class="keyword">const</span> -> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a3de4a0e1a29cdeccd54e67da544ab184">SubscribeAsString</a>(subscriber, callback);</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">UnsubscribeFromPropertyChangeAsString</a>(<span class="keyword">const</span> std::string& subscriber) -> <span class="keywordtype">void</span> { fConfig.<a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af5a595dbee8a9331d33e0cd3eaefb4ae">UnsubscribeAsString</a>(subscriber); }</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580">CycleLogConsoleSeverityUp</a>() -> <span class="keywordtype">void</span> { Logger::CycleConsoleSeverityUp(); }</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52">CycleLogConsoleSeverityDown</a>() -> <span class="keywordtype">void</span> { Logger::CycleConsoleSeverityDown(); }</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e">CycleLogVerbosityUp</a>() -> <span class="keywordtype">void</span> { Logger::CycleVerbosityUp(); }</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580"> 272</a></span>  <span class="keyword">auto</span> <a class="code" href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5">CycleLogVerbosityDown</a>() -> <span class="keywordtype">void</span> { Logger::CycleVerbosityDown(); }</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52"> 274</a></span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>& fConfig;</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e"> 276</a></span>  <a class="code" href="classFairMQDevice.html">FairMQDevice</a>& fDevice;</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  boost::optional<std::string> fDeviceController;</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5"> 278</a></span>  <span class="keyword">mutable</span> std::mutex fDeviceControllerMutex;</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  std::condition_variable fReleaseDeviceControlCondition;</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> }; <span class="comment">/* class PluginServices */</span></div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGINSERVICES_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ae06ecdf4d79d3a1e7d850dfab4239200"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">fair::mq::PluginServices::SetProperty</a></div><div class="ttdeci">auto SetProperty(const std::string &key, T val) -> void</div><div class="ttdoc">Set config property.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:163</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a69294d8b0771e3b65d4d4157c4559c52"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52">fair::mq::PluginServices::CycleLogConsoleSeverityDown</a></div><div class="ttdeci">auto CycleLogConsoleSeverityDown() -> void</div><div class="ttdoc">Decreases console logging severity, or sets it to highest if it is already lowest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:274</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ac93964a0e35ca0ed91bfbaab6405be82"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ac93964a0e35ca0ed91bfbaab6405be82">fair::mq::PluginServices::GetCurrentDeviceState</a></div><div class="ttdeci">auto GetCurrentDeviceState() const -> DeviceState</div><div class="ttdef"><b>Definition:</b> PluginServices.h:94</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a746aba1505ae9117a28886de85111e16"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">fair::mq::PluginServices::UnsubscribeFromPropertyChangeAsString</a></div><div class="ttdeci">auto UnsubscribeFromPropertyChangeAsString(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from property updates that convert to string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:269</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html">fair::mq::PluginServices</a></div><div class="ttdoc">Facilitates communication between devices and plugins.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:46</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_a7ba52b2fc3908c6bf1391eb5f27b03bd"><div class="ttname"><a href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">FairMQDevice::GetCurrentState</a></div><div class="ttdeci">fair::mq::State GetCurrentState() const</div><div class="ttdoc">Returns the current state.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:473</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a67ef979cc694a245f28084389b8cffc0"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a67ef979cc694a245f28084389b8cffc0">fair::mq::ProgOptions::GetPropertyKeys</a></div><div class="ttdeci">std::vector< std::string > GetPropertyKeys() const</div><div class="ttdoc">Discover the list of property keys.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:189</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_adb2b7857434e48018dfe6b17044dcef9"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">fair::mq::PluginServices::ChangeDeviceState</a></div><div class="ttdeci">auto ChangeDeviceState(const std::string &controller, const DeviceStateTransition next) -> bool</div><div class="ttdoc">Request a device state transition.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:15</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a69e8c85c5d7778f361244ae554af9f5b"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a69e8c85c5d7778f361244ae554af9f5b">fair::mq::ProgOptions::GetPropertiesStartingWith</a></div><div class="ttdeci">fair::mq::Properties GetPropertiesStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:256</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a95467b4bdb44c73cf960a60ff0457df2"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a95467b4bdb44c73cf960a60ff0457df2">fair::mq::ProgOptions::UpdateProperty</a></div><div class="ttdeci">bool UpdateProperty(const std::string &key, T val)</div><div class="ttdoc">Updates an existing config property (or fails if it doesn't exist)</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:152</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a95095ff2174a531e48d83ee1cfa293d5"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5">fair::mq::PluginServices::CycleLogVerbosityDown</a></div><div class="ttdeci">auto CycleLogVerbosityDown() -> void</div><div class="ttdoc">Decreases logging verbosity, or sets it to highest if it is already lowest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:278</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a7e4ee07b3e64aca15079165f94ef4580"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580">fair::mq::PluginServices::CycleLogConsoleSeverityUp</a></div><div class="ttdeci">auto CycleLogConsoleSeverityUp() -> void</div><div class="ttdoc">Increases console logging severity, or sets it to lowest if it is already highest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:272</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af5afa61b1a9eebb4a9558da3fc8b576a"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af5afa61b1a9eebb4a9558da3fc8b576a">fair::mq::ProgOptions::Unsubscribe</a></div><div class="ttdeci">void Unsubscribe(const std::string &subscriber) const</div><div class="ttdoc">Unsubscribe from property updates of type T.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:202</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a9f48923e4b80022827bd416ffe8f38bc"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">fair::mq::PluginServices::GetPropertiesStartingWith</a></div><div class="ttdeci">fair::mq::Properties GetPropertiesStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:221</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a4e090fa0029724f23a1ef3fcacb928d2"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">fair::mq::PluginServices::GetPropertyKeys</a></div><div class="ttdeci">auto GetPropertyKeys() const -> std::vector< std::string ></div><div class="ttdoc">Discover the list of property keys.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:239</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_aba93554ad3553a1d14d1affd85e1dea1"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#aba93554ad3553a1d14d1affd85e1dea1">fair::mq::PluginServices::GetDeviceController</a></div><div class="ttdeci">auto GetDeviceController() const -> boost::optional< std::string ></div><div class="ttdoc">Get current device controller.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:70</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a98b235e5119d863dbb7adeb00938d449"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">fair::mq::PluginServices::SubscribeToDeviceStateChange</a></div><div class="ttdeci">auto SubscribeToDeviceStateChange(const std::string &subscriber, std::function< void(DeviceState)> callback) -> void</div><div class="ttdoc">Subscribe with a callback to device state changes.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:138</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_aba55018cac4ae8341f491c662c482130"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">fair::mq::PluginServices::ToDeviceState</a></div><div class="ttdeci">static auto ToDeviceState(const std::string &state) -> DeviceState</div><div class="ttdoc">Convert string to DeviceState.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:75</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a4622c8b748222585a14de5623eea4cd2"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">fair::mq::PluginServices::UpdateProperty</a></div><div class="ttdeci">bool UpdateProperty(const std::string &key, T val)</div><div class="ttdoc">Updates an existing config property (or fails if it doesn't exist)</div><div class="ttdef"><b>Definition:</b> PluginServices.h:171</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a7f74475cef8ab1c39b87f8948b35e0a0"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">fair::mq::PluginServices::ToDeviceStateTransition</a></div><div class="ttdeci">static auto ToDeviceStateTransition(const std::string &transition) -> DeviceStateTransition</div><div class="ttdoc">Convert string to DeviceStateTransition.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:81</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a56f00de35770ed226b3d9c467c6b0f6e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">fair::mq::PluginServices::UpdateProperties</a></div><div class="ttdeci">bool UpdateProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Updates multiple existing config properties (or fails of any of then do not exist,...</div><div class="ttdef"><b>Definition:</b> PluginServices.h:174</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_aea4d010d8cecae6e801df6308e8f6197"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">fair::mq::PluginServices::DeleteProperty</a></div><div class="ttdeci">void DeleteProperty(const std::string &key)</div><div class="ttdoc">Deletes a property with the given key from the config store.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:178</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a118417e34fd4f398e77f7f5fe7153661"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">fair::mq::PluginServices::GetPropertiesAsStringStartingWith</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsStringStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:231</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a9d0a829555bafa0f19a3f072aa5d0097"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">fair::mq::ProgOptions::GetPropertyAsString</a></div><div class="ttdeci">std::string GetPropertyAsString(const std::string &key) const</div><div class="ttdoc">Read config property as string, throw if no property with this key exists.</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ab2bab89d575dd90828d492cf2d0d2f5e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">fair::mq::PluginServices::TakeDeviceControl</a></div><div class="ttdeci">auto TakeDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Become device controller.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:31</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a272f25798b948992a560df32d405517c"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">fair::mq::ProgOptions::SetProperty</a></div><div class="ttdeci">void SetProperty(const std::string &key, T val)</div><div class="ttdoc">Set config property.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:136</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_abcbfe2950b7cf1239cbc7fcf085a8f01"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#abcbfe2950b7cf1239cbc7fcf085a8f01">fair::mq::ProgOptions::GetPropertiesAsString</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsString(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:271</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a657506e2afe946ada3deff4ecc40e4d1"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">fair::mq::PluginServices::UnsubscribeFromDeviceStateChange</a></div><div class="ttdeci">auto UnsubscribeFromDeviceStateChange(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from device state changes.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:147</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_abd34c038f5c3c94338419bbd887f3d14"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">fair::mq::PluginServices::SubscribeToPropertyChange</a></div><div class="ttdeci">auto SubscribeToPropertyChange(const std::string &subscriber, std::function< void(const std::string &key, T)> callback) const -> void</div><div class="ttdoc">Subscribe to property updates of type T.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:247</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a79645639828ffaebcb81e29dc49ca6a4"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a79645639828ffaebcb81e29dc49ca6a4">fair::mq::PluginServices::WaitForReleaseDeviceControl</a></div><div class="ttdeci">auto WaitForReleaseDeviceControl() -> void</div><div class="ttdoc">Block until control is released.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:77</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a3de4a0e1a29cdeccd54e67da544ab184"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a3de4a0e1a29cdeccd54e67da544ab184">fair::mq::ProgOptions::SubscribeAsString</a></div><div class="ttdeci">void SubscribeAsString(const std::string &subscriber, std::function< void(typename fair::mq::PropertyChange::KeyType, std::string)> func) const</div><div class="ttdoc">Subscribe to property updates, with values converted to string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:213</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a364225377b53067f0bfa1e006fbe069e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e">fair::mq::PluginServices::CycleLogVerbosityUp</a></div><div class="ttdeci">auto CycleLogVerbosityUp() -> void</div><div class="ttdoc">Increases logging verbosity, or sets it to lowest if it is already highest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:276</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_af4d3fd1caf8beffefc992b89e7479007"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">fair::mq::PluginServices::GetPropertiesAsString</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsString(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:225</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1ab97f8394a3e1552277ff2564e16c6a"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">fair::mq::PluginServices::PropertyExists</a></div><div class="ttdeci">auto PropertyExists(const std::string &key) const -> bool</div><div class="ttdoc">Checks a property with the given key exist in the configuration.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:154</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_ae3c2c8524082bf37eafaa26030ee7452"><div class="ttname"><a href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">FairMQDevice::SubscribeToStateChange</a></div><div class="ttdeci">void SubscribeToStateChange(const std::string &key, std::function< void(const fair::mq::State)> callback)</div><div class="ttdoc">Subscribe with a callback to state changes.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:454</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a6b014a8adcf80aa6fe8b3471e87f13e6"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a6b014a8adcf80aa6fe8b3471e87f13e6">fair::mq::ProgOptions::UpdateProperties</a></div><div class="ttdeci">bool UpdateProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Updates multiple existing config properties (or fails of any of then do not exist,...</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:323</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1b96fc3f61efccfa5c2048eb578b60e5"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">fair::mq::PluginServices::UnsubscribeFromPropertyChange</a></div><div class="ttdeci">auto UnsubscribeFromPropertyChange(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from property updates of type T.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:255</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_afbf4111312c5cd350dc7b924f8524c43"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#afbf4111312c5cd350dc7b924f8524c43">fair::mq::ProgOptions::Subscribe</a></div><div class="ttdeci">void Subscribe(const std::string &subscriber, std::function< void(typename fair::mq::PropertyChange::KeyType, T)> func) const</div><div class="ttdoc">Subscribe to property updates of type T.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:191</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ab966df2353bbce792a5b938f420080c0"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">fair::mq::PluginServices::GetChannelInfo</a></div><div class="ttdeci">auto GetChannelInfo() const -> std::unordered_map< std::string, int ></div><div class="ttdoc">Retrieve current channel information.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:235</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a49179c80826ae5ec87d77b8d50d8ec44"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">fair::mq::PluginServices::GetPropertyAsString</a></div><div class="ttdeci">auto GetPropertyAsString(const std::string &key) const -> std::string</div><div class="ttdoc">Read config property as string, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:200</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af5a595dbee8a9331d33e0cd3eaefb4ae"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af5a595dbee8a9331d33e0cd3eaefb4ae">fair::mq::ProgOptions::UnsubscribeAsString</a></div><div class="ttdeci">void UnsubscribeAsString(const std::string &subscriber) const</div><div class="ttdoc">Unsubscribe from property updates that convert to string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:221</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a546360c16172c5d3c83f483871fa0c7e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">fair::mq::PluginServices::StealDeviceControl</a></div><div class="ttdeci">auto StealDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Become device controller by force.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:47</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_aad0d6d0e82c486c9ba09ae5a3e0e4f25"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#aad0d6d0e82c486c9ba09ae5a3e0e4f25">fair::mq::ProgOptions::GetPropertiesAsStringStartingWith</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsStringStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:291</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ae9f743fc76dee8566eb843640120e8f3"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ae9f743fc76dee8566eb843640120e8f3">fair::mq::ProgOptions::SetProperties</a></div><div class="ttdeci">void SetProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Set multiple config properties.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:306</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a59e98e064e01188e0e52b9ae6f2f83a2"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a59e98e064e01188e0e52b9ae6f2f83a2">fair::mq::ProgOptions::GetProperties</a></div><div class="ttdeci">fair::mq::Properties GetProperties(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:236</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a95494fa84eea46fae7c666f0b82f7048"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a95494fa84eea46fae7c666f0b82f7048">fair::mq::ProgOptions::Count</a></div><div class="ttdeci">int Count(const std::string &key) const</div><div class="ttdoc">Checks a property with the given key exist in the configuration.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:155</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a8e9af05d7ca5f7ac372971a9c7450195"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a8e9af05d7ca5f7ac372971a9c7450195">fair::mq::ProgOptions::DeleteProperty</a></div><div class="ttdeci">void DeleteProperty(const std::string &key)</div><div class="ttdoc">Deletes a property with the given key from the config store.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:349</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_af7127f156ba970298a23b8b67550a43b"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">fair::mq::PluginServices::ReleaseDeviceControl</a></div><div class="ttdeci">auto ReleaseDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Release device controller role.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:54</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a352fad62f282e921b0c722dfcbaaa73d"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">fair::mq::PluginServices::GetProperties</a></div><div class="ttdeci">fair::mq::Properties GetProperties(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:215</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ad186ca529c4c374d35d9229019e83e10"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">fair::mq::PluginServices::SetProperties</a></div><div class="ttdeci">void SetProperties(const fair::mq::Properties &props)</div><div class="ttdoc">Set multiple config properties.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:166</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ad6c37fce55cb631d9f5be45b93a544f9"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">fair::mq::PluginServices::SubscribeToPropertyChangeAsString</a></div><div class="ttdeci">auto SubscribeToPropertyChangeAsString(const std::string &subscriber, std::function< void(const std::string &key, std::string)> callback) const -> void</div><div class="ttdoc">Subscribe to property updates.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:262</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_adc2f2ddc5a3e2d6a5846672d40cac359"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">fair::mq::PluginServices::GetProperty</a></div><div class="ttdeci">auto GetProperty(const std::string &key) const -> T</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:184</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html"><div class="ttname"><a href="classFairMQDevice.html">FairMQDevice</a></div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:50</div></div>
|
||||
<div class="ttc" id="aclassFairMQDevice_html_af9b5b7a5469bff53feb6a1e000230e73"><div class="ttname"><a href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">FairMQDevice::UnsubscribeFromStateChange</a></div><div class="ttdeci">void UnsubscribeFromStateChange(const std::string &key)</div><div class="ttdoc">Unsubscribe from state changes.</div><div class="ttdef"><b>Definition:</b> FairMQDevice.h:457</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af890f73cfd75cdf5189be7fa936c7bf0"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af890f73cfd75cdf5189be7fa936c7bf0">fair::mq::ProgOptions::GetChannelInfo</a></div><div class="ttdeci">std::unordered_map< std::string, int > GetChannelInfo() const</div><div class="ttdoc">Retrieve current channel information.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:161</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1ed12471e1736e2545645f3a12238d69"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">fair::mq::PluginServices::ToStr</a></div><div class="ttdeci">static auto ToStr(DeviceState state) -> std::string</div><div class="ttdoc">Convert DeviceState to string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:86</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
249
v1.4.33/Plugin_8h_source.html
Normal file
@@ -0,0 +1,249 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/Plugin.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Plugin.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017-2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PLUGIN_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PLUGIN_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/tools/Version.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/PluginServices.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <boost/dll/alias.hpp></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <boost/optional.hpp></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <boost/program_options.hpp></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <tuple></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <utility></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">class </span>Plugin</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">using</span> ProgOptions = boost::optional<boost::program_options::options_description>;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">using</span> Version = tools::Version;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1Plugin.html"> 42</a></span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>(std::string name,</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Version</a> version,</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::string maintainer,</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  std::string homepage,</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>* pluginServices);</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a> operator=(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> ~<a class="code" href="classfair_1_1mq_1_1Plugin.html">Plugin</a>();</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">auto</span> GetName() const -> const std::<span class="keywordtype">string</span>& { <span class="keywordflow">return</span> fkName; }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">auto</span> GetVersion() const -> const Version { <span class="keywordflow">return</span> fkVersion; }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">auto</span> GetMaintainer() const -> const std::<span class="keywordtype">string</span>& { <span class="keywordflow">return</span> fkMaintainer; }</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">auto</span> GetHomepage() const -> const std::<span class="keywordtype">string</span>& { <span class="keywordflow">return</span> fkHomepage; }</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator==(<span class="keyword">const</span> Plugin& lhs, <span class="keyword">const</span> Plugin& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> std::make_tuple(lhs.GetName(), lhs.GetVersion()) == std::make_tuple(rhs.GetName(), rhs.GetVersion()); }</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator!=(<span class="keyword">const</span> Plugin& lhs, <span class="keyword">const</span> Plugin& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> !(lhs == rhs); }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> Plugin& p) -> std::ostream&</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> os << <span class="stringliteral">"'"</span> << p.GetName() << <span class="stringliteral">"', "</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  << <span class="stringliteral">"version '"</span> << p.GetVersion() << <span class="stringliteral">"', "</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  << <span class="stringliteral">"maintainer '"</span> << p.GetMaintainer() << <span class="stringliteral">"', "</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  << <span class="stringliteral">"homepage '"</span> << p.GetHomepage() << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">static</span> <span class="keyword">auto</span> NoProgramOptions() -> ProgOptions { <span class="keywordflow">return</span> boost::none; }</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// device control API</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// see <fairmq/PluginServices.h> for docs</span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">using</span> DeviceState = fair::mq::PluginServices::DeviceState;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">using</span> DeviceStateTransition = fair::mq::PluginServices::DeviceStateTransition;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">auto</span> ToDeviceState(<span class="keyword">const</span> std::string& state) <span class="keyword">const</span> -> DeviceState { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">ToDeviceState</a>(state); }</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">auto</span> ToDeviceStateTransition(<span class="keyword">const</span> std::string& transition) <span class="keyword">const</span> -> DeviceStateTransition { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">ToDeviceStateTransition</a>(transition); }</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">auto</span> ToStr(DeviceState state) <span class="keyword">const</span> -> std::string { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">ToStr</a>(state); }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">auto</span> ToStr(DeviceStateTransition transition) <span class="keyword">const</span> -> std::string { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">ToStr</a>(transition); }</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">auto</span> GetCurrentDeviceState() const -> DeviceState { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ac93964a0e35ca0ed91bfbaab6405be82">GetCurrentDeviceState</a>(); }</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">auto</span> TakeDeviceControl() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">TakeDeviceControl</a>(fkName); };</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">auto</span> StealDeviceControl() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">StealDeviceControl</a>(fkName); };</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">auto</span> ReleaseDeviceControl() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">ReleaseDeviceControl</a>(fkName); };</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">auto</span> ChangeDeviceState(<span class="keyword">const</span> DeviceStateTransition next) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">ChangeDeviceState</a>(fkName, next); }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">auto</span> SubscribeToDeviceStateChange(std::function<<span class="keywordtype">void</span>(DeviceState)> callback) -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">SubscribeToDeviceStateChange</a>(fkName, callback); }</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">auto</span> UnsubscribeFromDeviceStateChange() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">UnsubscribeFromDeviceStateChange</a>(fkName); }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// device config API</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// see <fairmq/PluginServices.h> for docs</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">auto</span> PropertyExists(<span class="keyword">const</span> std::string& key) -> <span class="keywordtype">int</span> { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">PropertyExists</a>(key); }</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  T GetProperty(<span class="keyword">const</span> std::string& key)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">GetProperty</a><T>(key); }</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  T GetProperty(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> T& ifNotFound)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">GetProperty</a>(key, ifNotFound); }</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  std::string GetPropertyAsString(<span class="keyword">const</span> std::string& key)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">GetPropertyAsString</a>(key); }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  std::string GetPropertyAsString(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> std::string& ifNotFound)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">GetPropertyAsString</a>(key, ifNotFound); }</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  fair::mq::Properties GetProperties(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">GetProperties</a>(q); }</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  fair::mq::Properties GetPropertiesStartingWith(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">GetPropertiesStartingWith</a>(q); };</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  std::map<std::string, std::string> GetPropertiesAsString(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">GetPropertiesAsString</a>(q); }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  std::map<std::string, std::string> GetPropertiesAsStringStartingWith(<span class="keyword">const</span> std::string& q)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">GetPropertiesAsStringStartingWith</a>(q); };</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">auto</span> GetChannelInfo() const -> std::unordered_map<std::<span class="keywordtype">string</span>, <span class="keywordtype">int</span>> { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">GetChannelInfo</a>(); }</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">auto</span> GetPropertyKeys() const -> std::vector<std::<span class="keywordtype">string</span>> { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">GetPropertyKeys</a>(); }</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">auto</span> SetProperty(<span class="keyword">const</span> std::string& key, T val) -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">SetProperty</a>(key, val); }</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">void</span> SetProperties(<span class="keyword">const</span> fair::mq::Properties& props) { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">SetProperties</a>(props); }</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">bool</span> UpdateProperty(<span class="keyword">const</span> std::string& key, T val) { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">UpdateProperty</a>(key, val); }</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">bool</span> UpdateProperties(<span class="keyword">const</span> fair::mq::Properties& input) { <span class="keywordflow">return</span> fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">UpdateProperties</a>(input); }</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">void</span> DeleteProperty(<span class="keyword">const</span> std::string& key) { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">DeleteProperty</a>(key); }</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">auto</span> SubscribeToPropertyChange(std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& key, T newValue)> callback) -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">SubscribeToPropertyChange</a><T>(fkName, callback); }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">auto</span> UnsubscribeFromPropertyChange() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">UnsubscribeFromPropertyChange</a><T>(fkName); }</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">auto</span> SubscribeToPropertyChangeAsString(std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string& key, std::string newValue)> callback) -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">SubscribeToPropertyChangeAsString</a>(fkName, callback); }</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">auto</span> UnsubscribeFromPropertyChangeAsString() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">UnsubscribeFromPropertyChangeAsString</a>(fkName); }</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">auto</span> CycleLogConsoleSeverityUp() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580">CycleLogConsoleSeverityUp</a>(); }</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">auto</span> CycleLogConsoleSeverityDown() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52">CycleLogConsoleSeverityDown</a>(); }</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">auto</span> CycleLogVerbosityUp() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e">CycleLogVerbosityUp</a>(); }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">auto</span> CycleLogVerbosityDown() -> <span class="keywordtype">void</span> { fPluginServices-><a class="code" href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5">CycleLogVerbosityDown</a>(); }</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> std::string fkName;</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> Version fkVersion;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> std::string fkMaintainer;</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> std::string fkHomepage;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  PluginServices* fPluginServices;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }; <span class="comment">/* class Plugin */</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define REGISTER_FAIRMQ_PLUGIN(KLASS, NAME, VERSION, MAINTAINER, HOMEPAGE, PROGOPTIONS) \</span></div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">static auto Make_##NAME##_Plugin(fair::mq::PluginServices* pluginServices) -> std::unique_ptr<fair::mq::Plugin> \</span></div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">{ \</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> return std::make_unique<KLASS>(std::string{#NAME}, VERSION, std::string{MAINTAINER}, std::string{HOMEPAGE}, pluginServices); \</span></div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">} \</span></div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">BOOST_DLL_ALIAS(Make_##NAME##_Plugin, make_##NAME##_plugin) \</span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">BOOST_DLL_ALIAS(PROGOPTIONS, get_##NAME##_plugin_progoptions)</span></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PLUGIN_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ae06ecdf4d79d3a1e7d850dfab4239200"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">fair::mq::PluginServices::SetProperty</a></div><div class="ttdeci">auto SetProperty(const std::string &key, T val) -> void</div><div class="ttdoc">Set config property.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:163</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a69294d8b0771e3b65d4d4157c4559c52"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52">fair::mq::PluginServices::CycleLogConsoleSeverityDown</a></div><div class="ttdeci">auto CycleLogConsoleSeverityDown() -> void</div><div class="ttdoc">Decreases console logging severity, or sets it to highest if it is already lowest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:274</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ac93964a0e35ca0ed91bfbaab6405be82"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ac93964a0e35ca0ed91bfbaab6405be82">fair::mq::PluginServices::GetCurrentDeviceState</a></div><div class="ttdeci">auto GetCurrentDeviceState() const -> DeviceState</div><div class="ttdef"><b>Definition:</b> PluginServices.h:94</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a746aba1505ae9117a28886de85111e16"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">fair::mq::PluginServices::UnsubscribeFromPropertyChangeAsString</a></div><div class="ttdeci">auto UnsubscribeFromPropertyChangeAsString(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from property updates that convert to string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:269</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html">fair::mq::PluginServices</a></div><div class="ttdoc">Facilitates communication between devices and plugins.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:46</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_adb2b7857434e48018dfe6b17044dcef9"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">fair::mq::PluginServices::ChangeDeviceState</a></div><div class="ttdeci">auto ChangeDeviceState(const std::string &controller, const DeviceStateTransition next) -> bool</div><div class="ttdoc">Request a device state transition.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:15</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a95095ff2174a531e48d83ee1cfa293d5"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5">fair::mq::PluginServices::CycleLogVerbosityDown</a></div><div class="ttdeci">auto CycleLogVerbosityDown() -> void</div><div class="ttdoc">Decreases logging verbosity, or sets it to highest if it is already lowest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:278</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a7e4ee07b3e64aca15079165f94ef4580"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580">fair::mq::PluginServices::CycleLogConsoleSeverityUp</a></div><div class="ttdeci">auto CycleLogConsoleSeverityUp() -> void</div><div class="ttdoc">Increases console logging severity, or sets it to lowest if it is already highest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:272</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a9f48923e4b80022827bd416ffe8f38bc"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">fair::mq::PluginServices::GetPropertiesStartingWith</a></div><div class="ttdeci">fair::mq::Properties GetPropertiesStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:221</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a4e090fa0029724f23a1ef3fcacb928d2"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">fair::mq::PluginServices::GetPropertyKeys</a></div><div class="ttdeci">auto GetPropertyKeys() const -> std::vector< std::string ></div><div class="ttdoc">Discover the list of property keys.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:239</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a98b235e5119d863dbb7adeb00938d449"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">fair::mq::PluginServices::SubscribeToDeviceStateChange</a></div><div class="ttdeci">auto SubscribeToDeviceStateChange(const std::string &subscriber, std::function< void(DeviceState)> callback) -> void</div><div class="ttdoc">Subscribe with a callback to device state changes.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:138</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_aba55018cac4ae8341f491c662c482130"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">fair::mq::PluginServices::ToDeviceState</a></div><div class="ttdeci">static auto ToDeviceState(const std::string &state) -> DeviceState</div><div class="ttdoc">Convert string to DeviceState.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:75</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a4622c8b748222585a14de5623eea4cd2"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">fair::mq::PluginServices::UpdateProperty</a></div><div class="ttdeci">bool UpdateProperty(const std::string &key, T val)</div><div class="ttdoc">Updates an existing config property (or fails if it doesn't exist)</div><div class="ttdef"><b>Definition:</b> PluginServices.h:171</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a7f74475cef8ab1c39b87f8948b35e0a0"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">fair::mq::PluginServices::ToDeviceStateTransition</a></div><div class="ttdeci">static auto ToDeviceStateTransition(const std::string &transition) -> DeviceStateTransition</div><div class="ttdoc">Convert string to DeviceStateTransition.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:81</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a56f00de35770ed226b3d9c467c6b0f6e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">fair::mq::PluginServices::UpdateProperties</a></div><div class="ttdeci">bool UpdateProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Updates multiple existing config properties (or fails of any of then do not exist,...</div><div class="ttdef"><b>Definition:</b> PluginServices.h:174</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_aea4d010d8cecae6e801df6308e8f6197"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">fair::mq::PluginServices::DeleteProperty</a></div><div class="ttdeci">void DeleteProperty(const std::string &key)</div><div class="ttdoc">Deletes a property with the given key from the config store.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:178</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a118417e34fd4f398e77f7f5fe7153661"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">fair::mq::PluginServices::GetPropertiesAsStringStartingWith</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsStringStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:231</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ab2bab89d575dd90828d492cf2d0d2f5e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">fair::mq::PluginServices::TakeDeviceControl</a></div><div class="ttdeci">auto TakeDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Become device controller.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:31</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a657506e2afe946ada3deff4ecc40e4d1"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">fair::mq::PluginServices::UnsubscribeFromDeviceStateChange</a></div><div class="ttdeci">auto UnsubscribeFromDeviceStateChange(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from device state changes.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:147</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_abd34c038f5c3c94338419bbd887f3d14"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">fair::mq::PluginServices::SubscribeToPropertyChange</a></div><div class="ttdeci">auto SubscribeToPropertyChange(const std::string &subscriber, std::function< void(const std::string &key, T)> callback) const -> void</div><div class="ttdoc">Subscribe to property updates of type T.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:247</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a364225377b53067f0bfa1e006fbe069e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e">fair::mq::PluginServices::CycleLogVerbosityUp</a></div><div class="ttdeci">auto CycleLogVerbosityUp() -> void</div><div class="ttdoc">Increases logging verbosity, or sets it to lowest if it is already highest.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:276</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_af4d3fd1caf8beffefc992b89e7479007"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">fair::mq::PluginServices::GetPropertiesAsString</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsString(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:225</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1ab97f8394a3e1552277ff2564e16c6a"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">fair::mq::PluginServices::PropertyExists</a></div><div class="ttdeci">auto PropertyExists(const std::string &key) const -> bool</div><div class="ttdoc">Checks a property with the given key exist in the configuration.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:154</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1b96fc3f61efccfa5c2048eb578b60e5"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">fair::mq::PluginServices::UnsubscribeFromPropertyChange</a></div><div class="ttdeci">auto UnsubscribeFromPropertyChange(const std::string &subscriber) -> void</div><div class="ttdoc">Unsubscribe from property updates of type T.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:255</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ab966df2353bbce792a5b938f420080c0"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">fair::mq::PluginServices::GetChannelInfo</a></div><div class="ttdeci">auto GetChannelInfo() const -> std::unordered_map< std::string, int ></div><div class="ttdoc">Retrieve current channel information.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:235</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a49179c80826ae5ec87d77b8d50d8ec44"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">fair::mq::PluginServices::GetPropertyAsString</a></div><div class="ttdeci">auto GetPropertyAsString(const std::string &key) const -> std::string</div><div class="ttdoc">Read config property as string, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:200</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a546360c16172c5d3c83f483871fa0c7e"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">fair::mq::PluginServices::StealDeviceControl</a></div><div class="ttdeci">auto StealDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Become device controller by force.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:47</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_af7127f156ba970298a23b8b67550a43b"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">fair::mq::PluginServices::ReleaseDeviceControl</a></div><div class="ttdeci">auto ReleaseDeviceControl(const std::string &controller) -> void</div><div class="ttdoc">Release device controller role.</div><div class="ttdef"><b>Definition:</b> PluginServices.cxx:54</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a352fad62f282e921b0c722dfcbaaa73d"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">fair::mq::PluginServices::GetProperties</a></div><div class="ttdeci">fair::mq::Properties GetProperties(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:215</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ad186ca529c4c374d35d9229019e83e10"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">fair::mq::PluginServices::SetProperties</a></div><div class="ttdeci">void SetProperties(const fair::mq::Properties &props)</div><div class="ttdoc">Set multiple config properties.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:166</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_ad6c37fce55cb631d9f5be45b93a544f9"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">fair::mq::PluginServices::SubscribeToPropertyChangeAsString</a></div><div class="ttdeci">auto SubscribeToPropertyChangeAsString(const std::string &subscriber, std::function< void(const std::string &key, std::string)> callback) const -> void</div><div class="ttdoc">Subscribe to property updates.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:262</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_adc2f2ddc5a3e2d6a5846672d40cac359"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">fair::mq::PluginServices::GetProperty</a></div><div class="ttdeci">auto GetProperty(const std::string &key) const -> T</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:184</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1Plugin_html"><div class="ttname"><a href="classfair_1_1mq_1_1Plugin.html">fair::mq::Plugin</a></div><div class="ttdoc">Base class for FairMQ plugins.</div><div class="ttdef"><b>Definition:</b> Plugin.h:43</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1PluginServices_html_a1ed12471e1736e2545645f3a12238d69"><div class="ttname"><a href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">fair::mq::PluginServices::ToStr</a></div><div class="ttdeci">static auto ToStr(DeviceState state) -> std::string</div><div class="ttdoc">Convert DeviceState to string.</div><div class="ttdef"><b>Definition:</b> PluginServices.h:86</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
105
v1.4.33/Process_8h_source.html
Normal file
@@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Process.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Process.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_PROCESS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_PROCESS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> {</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">struct </span>execute_result</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  std::string console_out;</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordtype">int</span> exit_code;</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> };</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> execute_result execute(<span class="keyword">const</span> std::string& cmd,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">const</span> std::string& prefix = <span class="stringliteral">""</span>,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">const</span> std::string& input = <span class="stringliteral">""</span>,</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">int</span> sig = -1);</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_PROCESS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
96
v1.4.33/ProgOptionsFwd_8h_source.html
Normal file
@@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/ProgOptionsFwd.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ProgOptionsFwd.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PROGOPTIONSFWD_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PROGOPTIONSFWD_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">class </span>ProgOptions;</div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> }</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">using</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">FairMQProgOptions</a> = <a class="code" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>;</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PROGOPTIONSFWD_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
296
v1.4.33/ProgOptions_8h_source.html
Normal file
@@ -0,0 +1,296 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/ProgOptions.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ProgOptions.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_PROGOPTIONS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_PROGOPTIONS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "FairMQChannel.h"</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "FairMQLogger.h"</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/EventManager.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/ProgOptionsFwd.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <boost/program_options.hpp></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">struct </span>PropertyNotFoundError : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>ProgOptions</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  ProgOptions();</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PropertyNotFoundError.html"> 38</a></span>  <span class="keyword">virtual</span> ~<a class="code" href="classfair_1_1mq_1_1ProgOptions.html">ProgOptions</a>() {}</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html"> 40</a></span>  <span class="keywordtype">void</span> ParseAll(<span class="keyword">const</span> std::vector<std::string>& cmdArgs, <span class="keywordtype">bool</span> allowUnregistered);</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">void</span> ParseAll(<span class="keyword">const</span> <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> <span class="keyword">const</span>* <span class="keyword">const</span>* argv, <span class="keywordtype">bool</span> allowUnregistered = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordtype">void</span> Notify();</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">void</span> AddToCmdLineOptions(<span class="keyword">const</span> boost::program_options::options_description optDesc, <span class="keywordtype">bool</span> visible = <span class="keyword">true</span>);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  boost::program_options::options_description& GetCmdLineOptions();</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">int</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a95494fa84eea46fae7c666f0b82f7048">Count</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  std::unordered_map<std::string, int> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af890f73cfd75cdf5189be7fa936c7bf0">GetChannelInfo</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  std::vector<std::string> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a67ef979cc694a245f28084389b8cffc0">GetPropertyKeys</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  T <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a>(<span class="keyword">const</span> std::string& key)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span> (fVarMap.count(key)) {</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> fVarMap[key].as<T>();</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac"> 69</a></span>  <span class="keywordflow">throw</span> <a class="code" href="structfair_1_1mq_1_1PropertyNotFoundError.html">PropertyNotFoundError</a>(fair::mq::tools::ToString(<span class="stringliteral">"Config has no key: "</span>, key));</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  T <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">GetProperty</a>(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> T& ifNotFound)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (fVarMap.count(key)) {</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> fVarMap[key].as<T>();</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#a4bc1ba359ddeebaa7158d5ebb42ce162"> 84</a></span>  <span class="keywordflow">return</span> ifNotFound;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  std::string <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  std::string <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> std::string& ifNotFound) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  fair::mq::Properties <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a59e98e064e01188e0e52b9ae6f2f83a2">GetProperties</a>(<span class="keyword">const</span> std::string& q) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  fair::mq::Properties <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a69e8c85c5d7778f361244ae554af9f5b">GetPropertiesStartingWith</a>(<span class="keyword">const</span> std::string& q) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  std::map<std::string, std::string> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#abcbfe2950b7cf1239cbc7fcf085a8f01">GetPropertiesAsString</a>(<span class="keyword">const</span> std::string& q) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  std::map<std::string, std::string> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#aad0d6d0e82c486c9ba09ae5a3e0e4f25">GetPropertiesAsStringStartingWith</a>(<span class="keyword">const</span> std::string& q) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(<span class="keyword">const</span> std::string& key, T val)</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  std::unique_lock<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  SetVarMapValue<typename std::decay<T>::type>(key, val);</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c"> 136</a></span>  lock.unlock();</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  fEvents.Emit<<a class="code" href="structfair_1_1mq_1_1PropertyChange.html">fair::mq::PropertyChange</a>, <span class="keyword">typename</span> std::decay<T>::type>(key, val);</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  fEvents.Emit<<a class="code" href="structfair_1_1mq_1_1PropertyChangeAsString.html">fair::mq::PropertyChangeAsString</a>, std::string>(key, <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(key));</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordtype">bool</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a95467b4bdb44c73cf960a60ff0457df2">UpdateProperty</a>(<span class="keyword">const</span> std::string& key, T val)</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  std::unique_lock<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (fVarMap.count(key)) {</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  SetVarMapValue<typename std::decay<T>::type>(key, val);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#a95467b4bdb44c73cf960a60ff0457df2"> 152</a></span>  </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  lock.unlock();</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  fEvents.Emit<<a class="code" href="structfair_1_1mq_1_1PropertyChange.html">fair::mq::PropertyChange</a>, <span class="keyword">typename</span> std::decay<T>::type>(key, val);</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  fEvents.Emit<<a class="code" href="structfair_1_1mq_1_1PropertyChangeAsString.html">fair::mq::PropertyChangeAsString</a>, std::string>(key, <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">GetPropertyAsString</a>(key));</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  LOG(debug) << <span class="stringliteral">"UpdateProperty failed, no property found with key '"</span> << key << <span class="stringliteral">"'"</span>;</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ae9f743fc76dee8566eb843640120e8f3">SetProperties</a>(<span class="keyword">const</span> fair::mq::Properties& input);</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordtype">bool</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a6b014a8adcf80aa6fe8b3471e87f13e6">UpdateProperties</a>(<span class="keyword">const</span> fair::mq::Properties& input);</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a8e9af05d7ca5f7ac372971a9c7450195">DeleteProperty</a>(<span class="keyword">const</span> std::string& key);</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#ac1e7828be92f2bb8419c26e8f5670c8c">AddChannel</a>(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> <a class="code" href="classFairMQChannel.html">FairMQChannel</a>& channel);</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#afbf4111312c5cd350dc7b924f8524c43">Subscribe</a>(<span class="keyword">const</span> std::string& subscriber, std::function<<span class="keywordtype">void</span>(<span class="keyword">typename</span> fair::mq::PropertyChange::KeyType, T)> func)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  static_assert(!std::is_same<T,const char*>::value || !std::is_same<T, char*>::value,</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="stringliteral">"In template member ProgOptions::Subscribe<T>(key,Lambda) the types const char* or char* for the calback signatures are not supported."</span>);</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  fEvents.Subscribe<<a class="code" href="structfair_1_1mq_1_1PropertyChange.html">fair::mq::PropertyChange</a>, T>(subscriber, func);</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#afbf4111312c5cd350dc7b924f8524c43"> 191</a></span>  }</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af5afa61b1a9eebb4a9558da3fc8b576a">Unsubscribe</a>(<span class="keyword">const</span> std::string& subscriber)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  fEvents.Unsubscribe<<a class="code" href="structfair_1_1mq_1_1PropertyChange.html">fair::mq::PropertyChange</a>, T>(subscriber);</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a3de4a0e1a29cdeccd54e67da544ab184">SubscribeAsString</a>(<span class="keyword">const</span> std::string& subscriber, std::function<<span class="keywordtype">void</span>(<span class="keyword">typename</span> fair::mq::PropertyChange::KeyType, std::string)> func)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  fEvents.Subscribe<<a class="code" href="structfair_1_1mq_1_1PropertyChangeAsString.html">fair::mq::PropertyChangeAsString</a>, std::string>(subscriber, func);</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#af5a595dbee8a9331d33e0cd3eaefb4ae">UnsubscribeAsString</a>(<span class="keyword">const</span> std::string& subscriber)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  fEvents.Unsubscribe<<a class="code" href="structfair_1_1mq_1_1PropertyChangeAsString.html">fair::mq::PropertyChangeAsString</a>, std::string>(subscriber);</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a96cf8720fd0dff3f4470973cccb9cb3b">PrintHelp</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a1bbba3bdd59e4a928602999635a09db7">PrintOptions</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a72b6fe74ff97eb4c318dd53791143a02">PrintOptionsRaw</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">const</span> boost::program_options::variables_map& <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a2ded0c21581b765a64fd09ac5c52bdce">GetVarMap</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fVarMap; }</div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#a2ded0c21581b765a64fd09ac5c52bdce"> 235</a></span>  T <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a5b941eebf2020ad9db2307b2052fbe0f">GetValue</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span> <span class="comment">/* TODO: deprecate this */</span></div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  {</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (fVarMap.count(key)) {</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> fVarMap[key].as<T>();</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1ProgOptions.html#a5b941eebf2020ad9db2307b2052fbe0f"> 241</a></span>  LOG(warn) << <span class="stringliteral">"Config has no key: "</span> << key << <span class="stringliteral">". Returning default constructed object."</span>;</div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> T();</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">int</span> SetValue(<span class="keyword">const</span> std::string& key, T val) <span class="comment">/* TODO: deprecate this */</span> { <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">SetProperty</a>(key, val); <span class="keywordflow">return</span> 0; }</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  std::string <a class="code" href="classfair_1_1mq_1_1ProgOptions.html#a2a83424f7420f8d1ddab01fb85f07221">GetStringValue</a>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span>; <span class="comment">/* TODO: deprecate this */</span></div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">void</span> ParseDefaults();</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  std::unordered_map<std::string, int> GetChannelInfoImpl() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordtype">void</span> SetVarMapValue(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> T& val)</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  std::map<std::string, boost::program_options::variable_value>& vm = fVarMap;</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  vm[key].value() = boost::any(val);</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  boost::program_options::variables_map fVarMap; </div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  boost::program_options::options_description fAllOptions; </div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  std::vector<std::string> fUnregisteredOptions; </div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">mutable</span> <a class="code" href="classfair_1_1mq_1_1EventManager.html">fair::mq::EventManager</a> fEvents;</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">mutable</span> std::mutex fMtx;</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> };</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PROGOPTIONS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:41</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a67ef979cc694a245f28084389b8cffc0"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a67ef979cc694a245f28084389b8cffc0">fair::mq::ProgOptions::GetPropertyKeys</a></div><div class="ttdeci">std::vector< std::string > GetPropertyKeys() const</div><div class="ttdoc">Discover the list of property keys.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:189</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a2ded0c21581b765a64fd09ac5c52bdce"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a2ded0c21581b765a64fd09ac5c52bdce">fair::mq::ProgOptions::GetVarMap</a></div><div class="ttdeci">const boost::program_options::variables_map & GetVarMap() const</div><div class="ttdoc">returns the property container</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:235</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a69e8c85c5d7778f361244ae554af9f5b"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a69e8c85c5d7778f361244ae554af9f5b">fair::mq::ProgOptions::GetPropertiesStartingWith</a></div><div class="ttdeci">fair::mq::Properties GetPropertiesStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:256</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a95467b4bdb44c73cf960a60ff0457df2"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a95467b4bdb44c73cf960a60ff0457df2">fair::mq::ProgOptions::UpdateProperty</a></div><div class="ttdeci">bool UpdateProperty(const std::string &key, T val)</div><div class="ttdoc">Updates an existing config property (or fails if it doesn't exist)</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:152</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af5afa61b1a9eebb4a9558da3fc8b576a"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af5afa61b1a9eebb4a9558da3fc8b576a">fair::mq::ProgOptions::Unsubscribe</a></div><div class="ttdeci">void Unsubscribe(const std::string &subscriber) const</div><div class="ttdoc">Unsubscribe from property updates of type T.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:202</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ac1e7828be92f2bb8419c26e8f5670c8c"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ac1e7828be92f2bb8419c26e8f5670c8c">fair::mq::ProgOptions::AddChannel</a></div><div class="ttdeci">void AddChannel(const std::string &name, const FairMQChannel &channel)</div><div class="ttdoc">Takes the provided channel and creates properties based on it.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:357</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ab68955211261d786ddec42aa986484ac"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ab68955211261d786ddec42aa986484ac">fair::mq::ProgOptions::GetProperty</a></div><div class="ttdeci">T GetProperty(const std::string &key) const</div><div class="ttdoc">Read config property, throw if no property with this key exists.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:69</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a9d0a829555bafa0f19a3f072aa5d0097"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a9d0a829555bafa0f19a3f072aa5d0097">fair::mq::ProgOptions::GetPropertyAsString</a></div><div class="ttdeci">std::string GetPropertyAsString(const std::string &key) const</div><div class="ttdoc">Read config property as string, throw if no property with this key exists.</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a272f25798b948992a560df32d405517c"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a272f25798b948992a560df32d405517c">fair::mq::ProgOptions::SetProperty</a></div><div class="ttdeci">void SetProperty(const std::string &key, T val)</div><div class="ttdoc">Set config property.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:136</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_abcbfe2950b7cf1239cbc7fcf085a8f01"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#abcbfe2950b7cf1239cbc7fcf085a8f01">fair::mq::ProgOptions::GetPropertiesAsString</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsString(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:271</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a96cf8720fd0dff3f4470973cccb9cb3b"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a96cf8720fd0dff3f4470973cccb9cb3b">fair::mq::ProgOptions::PrintHelp</a></div><div class="ttdeci">void PrintHelp() const</div><div class="ttdoc">prints full options description</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:383</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PropertyChange_html"><div class="ttname"><a href="structfair_1_1mq_1_1PropertyChange.html">fair::mq::PropertyChange</a></div><div class="ttdef"><b>Definition:</b> Properties.h:37</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a3de4a0e1a29cdeccd54e67da544ab184"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a3de4a0e1a29cdeccd54e67da544ab184">fair::mq::ProgOptions::SubscribeAsString</a></div><div class="ttdeci">void SubscribeAsString(const std::string &subscriber, std::function< void(typename fair::mq::PropertyChange::KeyType, std::string)> func) const</div><div class="ttdoc">Subscribe to property updates, with values converted to string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:213</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PropertyNotFoundError_html"><div class="ttname"><a href="structfair_1_1mq_1_1PropertyNotFoundError.html">fair::mq::PropertyNotFoundError</a></div><div class="ttdef"><b>Definition:</b> ProgOptions.h:38</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1EventManager_html"><div class="ttname"><a href="classfair_1_1mq_1_1EventManager.html">fair::mq::EventManager</a></div><div class="ttdoc">Manages event callbacks from different subscribers.</div><div class="ttdef"><b>Definition:</b> EventManager.h:56</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a6b014a8adcf80aa6fe8b3471e87f13e6"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a6b014a8adcf80aa6fe8b3471e87f13e6">fair::mq::ProgOptions::UpdateProperties</a></div><div class="ttdeci">bool UpdateProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Updates multiple existing config properties (or fails of any of then do not exist,...</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:323</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_afbf4111312c5cd350dc7b924f8524c43"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#afbf4111312c5cd350dc7b924f8524c43">fair::mq::ProgOptions::Subscribe</a></div><div class="ttdeci">void Subscribe(const std::string &subscriber, std::function< void(typename fair::mq::PropertyChange::KeyType, T)> func) const</div><div class="ttdoc">Subscribe to property updates of type T.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:191</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af5a595dbee8a9331d33e0cd3eaefb4ae"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af5a595dbee8a9331d33e0cd3eaefb4ae">fair::mq::ProgOptions::UnsubscribeAsString</a></div><div class="ttdeci">void UnsubscribeAsString(const std::string &subscriber) const</div><div class="ttdoc">Unsubscribe from property updates that convert to string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:221</div></div>
|
||||
<div class="ttc" id="aclassFairMQChannel_html"><div class="ttname"><a href="classFairMQChannel.html">FairMQChannel</a></div><div class="ttdoc">Wrapper class for FairMQSocket and related methods.</div><div class="ttdef"><b>Definition:</b> FairMQChannel.h:35</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_aad0d6d0e82c486c9ba09ae5a3e0e4f25"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#aad0d6d0e82c486c9ba09ae5a3e0e4f25">fair::mq::ProgOptions::GetPropertiesAsStringStartingWith</a></div><div class="ttdeci">std::map< std::string, std::string > GetPropertiesAsStringStartingWith(const std::string &q) const</div><div class="ttdoc">Read several config properties as string whose keys start with the provided string.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:291</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a72b6fe74ff97eb4c318dd53791143a02"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a72b6fe74ff97eb4c318dd53791143a02">fair::mq::ProgOptions::PrintOptionsRaw</a></div><div class="ttdeci">void PrintOptionsRaw() const</div><div class="ttdoc">prints full options description in a compact machine-readable format</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:432</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_ae9f743fc76dee8566eb843640120e8f3"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#ae9f743fc76dee8566eb843640120e8f3">fair::mq::ProgOptions::SetProperties</a></div><div class="ttdeci">void SetProperties(const fair::mq::Properties &input)</div><div class="ttdoc">Set multiple config properties.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:306</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a59e98e064e01188e0e52b9ae6f2f83a2"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a59e98e064e01188e0e52b9ae6f2f83a2">fair::mq::ProgOptions::GetProperties</a></div><div class="ttdeci">fair::mq::Properties GetProperties(const std::string &q) const</div><div class="ttdoc">Read several config properties whose keys match the provided regular expression.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:236</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a95494fa84eea46fae7c666f0b82f7048"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a95494fa84eea46fae7c666f0b82f7048">fair::mq::ProgOptions::Count</a></div><div class="ttdeci">int Count(const std::string &key) const</div><div class="ttdoc">Checks a property with the given key exist in the configuration.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:155</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a8e9af05d7ca5f7ac372971a9c7450195"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a8e9af05d7ca5f7ac372971a9c7450195">fair::mq::ProgOptions::DeleteProperty</a></div><div class="ttdeci">void DeleteProperty(const std::string &key)</div><div class="ttdoc">Deletes a property with the given key from the config store.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:349</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1PropertyChangeAsString_html"><div class="ttname"><a href="structfair_1_1mq_1_1PropertyChangeAsString.html">fair::mq::PropertyChangeAsString</a></div><div class="ttdef"><b>Definition:</b> Properties.h:38</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a2a83424f7420f8d1ddab01fb85f07221"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a2a83424f7420f8d1ddab01fb85f07221">fair::mq::ProgOptions::GetStringValue</a></div><div class="ttdeci">std::string GetStringValue(const std::string &key) const</div><div class="ttdoc">Read config property as string, return default-constructed object if key doesn't exist.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:213</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a5b941eebf2020ad9db2307b2052fbe0f"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a5b941eebf2020ad9db2307b2052fbe0f">fair::mq::ProgOptions::GetValue</a></div><div class="ttdeci">T GetValue(const std::string &key) const</div><div class="ttdoc">Read config property, return default-constructed object if key doesn't exist.</div><div class="ttdef"><b>Definition:</b> ProgOptions.h:241</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_a1bbba3bdd59e4a928602999635a09db7"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#a1bbba3bdd59e4a928602999635a09db7">fair::mq::ProgOptions::PrintOptions</a></div><div class="ttdeci">void PrintOptions() const</div><div class="ttdoc">prints properties stored in the property container</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:388</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1ProgOptions_html_af890f73cfd75cdf5189be7fa936c7bf0"><div class="ttname"><a href="classfair_1_1mq_1_1ProgOptions.html#af890f73cfd75cdf5189be7fa936c7bf0">fair::mq::ProgOptions::GetChannelInfo</a></div><div class="ttdeci">std::unordered_map< std::string, int > GetChannelInfo() const</div><div class="ttdoc">Retrieve current channel information.</div><div class="ttdef"><b>Definition:</b> ProgOptions.cxx:161</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
152
v1.4.33/Properties_8h_source.html
Normal file
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/Properties.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Properties.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef FAIR_MQ_PROPERTIES_H</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define FAIR_MQ_PROPERTIES_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <fairmq/EventManager.h></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <boost/any.hpp></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <boost/core/demangle.hpp></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <map></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <typeindex></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <typeinfo></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">using</span> Property = boost::any;</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">using</span> Properties = std::map<std::string, Property>;</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">struct </span>PropertyChange : Event<std::string> {};</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">struct </span>PropertyChangeAsString : Event<std::string> {};</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>PropertyHelper</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PropertyChange.html"> 37</a></span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1PropertyChangeAsString.html"> 38</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> AddType(std::string label = <span class="stringliteral">""</span>)</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1PropertyHelper.html"> 40</a></span>  <span class="keywordflow">if</span> (label == <span class="stringliteral">""</span>) {</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  label = boost::core::demangle(<span class="keyword">typeid</span>(T).name());</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  fTypeInfos[std::type_index(<span class="keyword">typeid</span>(T))] = [label](<span class="keyword">const</span> Property& p) {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  ss << boost::any_cast<T>(p);</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">return</span> std::pair<std::string, std::string>{ss.str(), label};</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  };</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  fEventEmitters[std::type_index(<span class="keyword">typeid</span>(T))] = [](<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1EventManager.html">fair::mq::EventManager</a>& em, <span class="keyword">const</span> std::string& k, <span class="keyword">const</span> Property& p) {</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  em.Emit<PropertyChange, T>(k, boost::any_cast<T>(p));</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  };</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">static</span> std::string ConvertPropertyToString(<span class="keyword">const</span> Property& p)</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> fTypeInfos.at(p.type())(p).first;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// returns <valueAsString, typenameAsString></span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">static</span> std::pair<std::string, std::string> GetPropertyInfo(<span class="keyword">const</span> Property& p)</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">try</span> {</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> fTypeInfos.at(p.type())(p);</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  } <span class="keywordflow">catch</span> (std::out_of_range& oor) {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> {<span class="stringliteral">"[unidentified_type]"</span>, <span class="stringliteral">"[unidentified_type]"</span>};</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">static</span> std::unordered_map<std::type_index, void(*)(<span class="keyword">const</span> <a class="code" href="classfair_1_1mq_1_1EventManager.html">fair::mq::EventManager</a>&, <span class="keyword">const</span> std::string&, <span class="keyword">const</span> Property&)> fEventEmitters;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">static</span> std::unordered_map<std::type_index, std::function<std::pair<std::string, std::string>(<span class="keyword">const</span> Property&)>> fTypeInfos;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> };</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PROPERTIES_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1EventManager_html"><div class="ttname"><a href="classfair_1_1mq_1_1EventManager.html">fair::mq::EventManager</a></div><div class="ttdoc">Manages event callbacks from different subscribers.</div><div class="ttdef"><b>Definition:</b> EventManager.h:56</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
98
v1.4.33/PropertyOutput_8h_source.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/PropertyOutput.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">PropertyOutput.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef FAIR_MQ_PROPERTYOUT_H</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define FAIR_MQ_PROPERTYOUT_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span>boost</div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> boost::any& p)</div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keywordflow">return</span> os << fair::mq::PropertyHelper::GetPropertyInfo(p).first;</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> }</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> }</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_PROPERTYOUT_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
187
v1.4.33/RateLimit_8h_source.html
Normal file
@@ -0,0 +1,187 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/RateLimit.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">RateLimit.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_RATELIMIT_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_RATELIMIT_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <cassert></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// #include <iostream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <iomanip></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>RateLimiter</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">using</span> clock = std::chrono::steady_clock;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">explicit</span> <a class="code" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a593f79d4621ad7a54dddec55d4435adb">RateLimiter</a>(<span class="keywordtype">float</span> rate)</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  : tw_req(std::chrono::seconds(1))</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  , start_time(clock::now())</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (rate <= 0) {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  tw_req = std::chrono::nanoseconds(1);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  tw_req = std::chrono::duration_cast<clock::duration>(tw_req / rate);</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  skip_check_count = std::max(1, <span class="keywordtype">int</span>(std::chrono::milliseconds(5) / tw_req));</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  count = skip_check_count;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// std::cerr << "skip_check_count: " << skip_check_count << '\n';</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a593f79d4621ad7a54dddec55d4435adb"> 59</a></span>  }</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">void</span> <a class="code" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a577dffe74db4af027a7e43ff90fea679">maybe_sleep</a>()</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">using namespace </span>std::chrono;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (--count == 0) {</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">auto</span> now = clock::now();</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (tw == clock::duration::zero()) {</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  tw = (now - start_time) / skip_check_count;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  tw = (1 * tw + 3 * (now - start_time) / skip_check_count) / 4;</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// std::ostringstream s; s << "tw = " << std::setw(10) <<</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// duration_cast<nanoseconds>(tw).count() << "ns, req = " <<</span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a577dffe74db4af027a7e43ff90fea679"> 80</a></span>  <span class="comment">// duration_cast<nanoseconds>(tw_req).count() << "ns, ";</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (tw > tw_req * 65 / 64) {</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// the time between maybe_sleep calls is more than 1% too long</span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// fix it by reducing ts towards 0 and if ts = 0 doesn't suffice, increase</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// skip_check_count</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (ts > clock::duration::zero()) {</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ts = std::max(clock::duration::zero(), ts - (tw - tw_req) * skip_check_count * 1 / 2);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// std::cerr << s.str() << "maybe_sleep: going too slow; sleep less: " <<</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// duration_cast<microseconds>(ts).count() << "µs\n";</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  skip_check_count =</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::min(<span class="keywordtype">int</span>(seconds(1) / tw_req), <span class="comment">// recheck at least every second</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  (skip_check_count * 5 + 3) / 4);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// std::cerr << s.str() << "maybe_sleep: going too slow; work more: " <<</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// skip_check_count << "\n";</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (tw < tw_req * 63 / 64) {</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// the time between maybe_sleep calls is more than 1% too short</span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// fix it by reducing skip_check_count towards 1 and if skip_check_count = 1</span></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// doesn't suffice, increase ts</span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// The minimum work count is defined such that a typical sleep time is greater</span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// than 1ms.</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// The user requested 1/tw_req work iterations per second. Divided by 1000, that's</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// the count per ms.</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> min_skip_count = std::max(1, <span class="keywordtype">int</span>(milliseconds(5) / tw_req));</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (skip_check_count > min_skip_count) {</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  assert(ts == clock::duration::zero());</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  skip_check_count = std::max(min_skip_count, skip_check_count * 3 / 4);</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// std::cerr << s.str() << "maybe_sleep: going too fast; work less: " <<</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// skip_check_count << "\n";</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  ts += (tw_req - tw) * (skip_check_count * 7) / 8;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">// std::cerr << s.str() << "maybe_sleep: going too fast; sleep more: " <<</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// duration_cast<microseconds>(ts).count() << "µs\n";</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  start_time = now;</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  count = skip_check_count;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (ts > clock::duration::zero()) {</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::this_thread::sleep_for(ts);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  clock::duration tw{}, </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  ts{}, </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  tw_req; </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  clock::time_point start_time;</div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">int</span> count = 1;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">int</span> skip_check_count = 1;</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> };</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">#endif // FAIR_MQ_TOOLS_RATELIMIT_H</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1tools_1_1RateLimiter_html_a593f79d4621ad7a54dddec55d4435adb"><div class="ttname"><a href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a593f79d4621ad7a54dddec55d4435adb">fair::mq::tools::RateLimiter::RateLimiter</a></div><div class="ttdeci">RateLimiter(float rate)</div><div class="ttdef"><b>Definition:</b> RateLimit.h:59</div></div>
|
||||
<div class="ttc" id="aclassfair_1_1mq_1_1tools_1_1RateLimiter_html_a577dffe74db4af027a7e43ff90fea679"><div class="ttname"><a href="classfair_1_1mq_1_1tools_1_1RateLimiter.html#a577dffe74db4af027a7e43ff90fea679">fair::mq::tools::RateLimiter::maybe_sleep</a></div><div class="ttdeci">void maybe_sleep()</div><div class="ttdef"><b>Definition:</b> RateLimit.h:80</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
348
v1.4.33/Region_8h_source.html
Normal file
@@ -0,0 +1,348 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/shmem/Region.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_6475741fe3587c0a949798307da6131d.html">shmem</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Region.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">* GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">* copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef FAIR_MQ_SHMEM_REGION_H_</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define FAIR_MQ_SHMEM_REGION_H_</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "Common.h"</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <FairMQLogger.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <FairMQUnmanagedRegion.h></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <boost/filesystem.hpp></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <boost/process.hpp></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <boost/date_time/posix_time/posix_time.hpp></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <boost/interprocess/managed_shared_memory.hpp></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <boost/interprocess/file_mapping.hpp></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <boost/interprocess/ipc/message_queue.hpp></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <algorithm></span> <span class="comment">// min</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <atomic></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <memory></span> <span class="comment">// make_unique</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <cerrno></span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <ios></span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>Region</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  Region(<span class="keyword">const</span> std::string& shmId, uint16_t <span class="keywordtype">id</span>, uint64_t size, <span class="keywordtype">bool</span> remote, RegionCallback callback, RegionBulkCallback bulkCallback, <span class="keyword">const</span> std::string& path, <span class="keywordtype">int</span> flags)</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  : fRemote(remote)</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  , fLinger(100)</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  , fStop(false)</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1shmem_1_1Region.html"> 51</a></span>  , fName(<span class="stringliteral">"fmq_"</span> + shmId + <span class="stringliteral">"_rg_"</span> + std::to_string(id))</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  , fQueueName(<span class="stringliteral">"fmq_"</span> + shmId + <span class="stringliteral">"_rgq_"</span> + std::to_string(id))</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  , fShmemObject()</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  , fFile(nullptr)</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  , fFileMapping()</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  , fQueue(nullptr)</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  , fAcksReceiver()</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  , fAcksSender()</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  , fCallback(callback)</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  , fBulkCallback(bulkCallback)</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (path != <span class="stringliteral">""</span>) {</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  fName = std::string(path + fName);</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (!fRemote) {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// create a file</span></div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  std::filebuf fbuf;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span> (fbuf.open(fName, std::ios_base::in | std::ios_base::out | std::ios_base::trunc | std::ios_base::binary)) {</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// set the size</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  fbuf.pubseekoff(size - 1, std::ios_base::beg);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  fbuf.sputc(0);</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  fFile = fopen(fName.c_str(), <span class="stringliteral">"r+"</span>);</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (!fFile) {</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  LOG(error) << <span class="stringliteral">"Failed to initialize file: "</span> << fName;</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  LOG(error) << <span class="stringliteral">"errno: "</span> << errno << <span class="stringliteral">": "</span> << strerror(errno);</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">throw</span> std::runtime_error(tools::ToString(<span class="stringliteral">"Failed to initialize file for shared memory region: "</span>, strerror(errno)));</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  fFileMapping = file_mapping(fName.c_str(), read_write);</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  LOG(debug) << <span class="stringliteral">"shmem: initialized file: "</span> << fName;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  fRegion = mapped_region(fFileMapping, read_write, 0, size, 0, flags);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (fRemote) {</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  fShmemObject = shared_memory_object(open_only, fName.c_str(), read_write);</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  fShmemObject = shared_memory_object(create_only, fName.c_str(), read_write);</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  fShmemObject.truncate(size);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  fRegion = mapped_region(fShmemObject, read_write, 0, 0, 0, flags);</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  InitializeQueues();</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  StartSendingAcks();</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  LOG(debug) << <span class="stringliteral">"shmem: initialized region: "</span> << fName;</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1Region.html">Region</a>() = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1Region.html">Region</a>(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1shmem_1_1Region.html">Region</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="structfair_1_1mq_1_1shmem_1_1Region.html">Region</a>(<a class="code" href="structfair_1_1mq_1_1shmem_1_1Region.html">Region</a>&&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">void</span> InitializeQueues()</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">using namespace </span>boost::interprocess;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (fRemote) {</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  fQueue = std::make_unique<message_queue>(open_only, fQueueName.c_str());</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  fQueue = std::make_unique<message_queue>(create_only, fQueueName.c_str(), 1024, fAckBunchSize * <span class="keyword">sizeof</span>(<a class="code" href="structFairMQRegionBlock.html">RegionBlock</a>));</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  LOG(debug) << <span class="stringliteral">"shmem: initialized region queue: "</span> << fQueueName;</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">void</span> StartSendingAcks() { fAcksSender = std::thread(&Region::SendAcks, <span class="keyword">this</span>); }</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">void</span> SendAcks()</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  std::unique_ptr<RegionBlock[]> blocks = std::make_unique<RegionBlock[]>(fAckBunchSize);</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">size_t</span> blocksToSend = 0;</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  blocksToSend = 0;</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  std::unique_lock<std::mutex> lock(fBlockMtx);</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// try to get <fAckBunchSize> blocks</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (fBlocksToFree.size() < fAckBunchSize) {</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  fBlockSendCV.wait_for(lock, std::chrono::milliseconds(500));</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// send whatever blocks we have</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  blocksToSend = std::min(fBlocksToFree.size(), fAckBunchSize);</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  copy_n(fBlocksToFree.end() - blocksToSend, blocksToSend, blocks.get());</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  fBlocksToFree.resize(fBlocksToFree.size() - blocksToSend);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (blocksToSend > 0) {</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">while</span> (!fQueue->try_send(blocks.get(), blocksToSend * <span class="keyword">sizeof</span>(RegionBlock), 0) && !fStop) {</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// receiver slow? yield and try again...</span></div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  std::this_thread::yield();</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// LOG(debug) << "Sent " << blocksToSend << " blocks.";</span></div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  } <span class="keywordflow">else</span> { <span class="comment">// blocksToSend == 0</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">if</span> (fStop) {</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  LOG(trace) << <span class="stringliteral">"AcksSender for "</span> << fName << <span class="stringliteral">" leaving "</span> << <span class="stringliteral">"(blocks left to free: "</span> << fBlocksToFree.size() << <span class="stringliteral">", "</span></div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  << <span class="stringliteral">" blocks left to send: "</span> << blocksToSend << <span class="stringliteral">")."</span>;</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">void</span> StartReceivingAcks() { fAcksReceiver = std::thread(&Region::ReceiveAcks, <span class="keyword">this</span>); }</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">void</span> ReceiveAcks()</div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> priority;</div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  boost::interprocess::message_queue::size_type recvdSize;</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  std::unique_ptr<RegionBlock[]> blocks = std::make_unique<RegionBlock[]>(fAckBunchSize);</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  std::vector<fair::mq::RegionBlock> result;</div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  result.reserve(fAckBunchSize);</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  uint32_t timeout = 100;</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">bool</span> leave = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (fStop) {</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  timeout = fLinger;</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  leave = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">auto</span> rcvTill = boost::posix_time::microsec_clock::universal_time() + boost::posix_time::milliseconds(timeout);</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">while</span> (fQueue->timed_receive(blocks.get(), fAckBunchSize * <span class="keyword">sizeof</span>(RegionBlock), recvdSize, priority, rcvTill)) {</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span> <span class="keyword">auto</span> numBlocks = recvdSize / <span class="keyword">sizeof</span>(RegionBlock);</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="comment">// LOG(debug) << "Received " << numBlocks << " blocks (recvdSize: " << recvdSize << "). (remaining queue size: " << fQueue->get_num_msg() << ").";</span></div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span> (fBulkCallback) {</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  result.clear();</div>
|
||||
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < numBlocks; i++) {</div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  result.emplace_back(<span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(fRegion.get_address()) + blocks[i].fHandle, blocks[i].fSize, <span class="keyword">reinterpret_cast<</span><span class="keywordtype">void</span>*<span class="keyword">></span>(blocks[i].fHint));</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  fBulkCallback(result);</div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fCallback) {</div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < numBlocks; i++) {</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  fCallback(<span class="keyword">reinterpret_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(fRegion.get_address()) + blocks[i].fHandle, blocks[i].fSize, <span class="keyword">reinterpret_cast<</span><span class="keywordtype">void</span>*<span class="keyword">></span>(blocks[i].fHint));</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (leave) {</div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  LOG(trace) << <span class="stringliteral">"AcksReceiver for "</span> << fName << <span class="stringliteral">" leaving (remaining queue size: "</span> << fQueue->get_num_msg() << <span class="stringliteral">")."</span>;</div>
|
||||
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
|
||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">void</span> ReleaseBlock(<span class="keyword">const</span> RegionBlock& block)</div>
|
||||
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  std::unique_lock<std::mutex> lock(fBlockMtx);</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  fBlocksToFree.emplace_back(block);</div>
|
||||
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
||||
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span> (fBlocksToFree.size() >= fAckBunchSize) {</div>
|
||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  lock.unlock();</div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  fBlockSendCV.notify_one();</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordtype">void</span> SetLinger(uint32_t linger) { fLinger = linger; }</div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  uint32_t GetLinger()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fLinger; }</div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  ~Region()</div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  fStop = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> (fAcksSender.joinable()) {</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  fBlockSendCV.notify_one();</div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  fAcksSender.join();</div>
|
||||
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (!fRemote) {</div>
|
||||
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (fAcksReceiver.joinable()) {</div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  fAcksReceiver.join();</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
||||
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (boost::interprocess::shared_memory_object::remove(fName.c_str())) {</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  LOG(debug) << <span class="stringliteral">"Region '"</span> << fName << <span class="stringliteral">"' destroyed."</span>;</div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span> (boost::interprocess::file_mapping::remove(fName.c_str())) {</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  LOG(debug) << <span class="stringliteral">"File mapping '"</span> << fName << <span class="stringliteral">"' destroyed."</span>;</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (fFile) {</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  fclose(fFile);</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (boost::interprocess::message_queue::remove(fQueueName.c_str())) {</div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  LOG(debug) << <span class="stringliteral">"Region queue '"</span> << fQueueName << <span class="stringliteral">"' destroyed."</span>;</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="comment">// LOG(debug) << "shmem: region '" << fName << "' is remote, no cleanup necessary.";</span></div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  LOG(debug) << <span class="stringliteral">"Region queue '"</span> << fQueueName << <span class="stringliteral">"' is remote, no cleanup necessary"</span>;</div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  </div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  LOG(debug) << <span class="stringliteral">"Region '"</span> << fName << <span class="stringliteral">"' ("</span> << (fRemote ? <span class="stringliteral">"remote"</span> : <span class="stringliteral">"local"</span>) << <span class="stringliteral">") destructed."</span>;</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">bool</span> fRemote;</div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  uint32_t fLinger;</div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  std::atomic<bool> fStop;</div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  std::string fName;</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  std::string fQueueName;</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  boost::interprocess::shared_memory_object fShmemObject;</div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  FILE* fFile;</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  boost::interprocess::file_mapping fFileMapping;</div>
|
||||
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  boost::interprocess::mapped_region fRegion;</div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  std::mutex fBlockMtx;</div>
|
||||
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  std::condition_variable fBlockSendCV;</div>
|
||||
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  std::vector<RegionBlock> fBlocksToFree;</div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">const</span> std::size_t fAckBunchSize = 256;</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  std::unique_ptr<boost::interprocess::message_queue> fQueue;</div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  </div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  std::thread fAcksReceiver;</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  std::thread fAcksSender;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  RegionCallback fCallback;</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  RegionBulkCallback fBulkCallback;</div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> };</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> } <span class="comment">// namespace fair::mq::shmem</span></div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  </div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SHMEM_REGION_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructFairMQRegionBlock_html"><div class="ttname"><a href="structFairMQRegionBlock.html">FairMQRegionBlock</a></div><div class="ttdef"><b>Definition:</b> FairMQUnmanagedRegion.h:56</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1shmem_1_1Region_html"><div class="ttname"><a href="structfair_1_1mq_1_1shmem_1_1Region.html">fair::mq::shmem::Region</a></div><div class="ttdef"><b>Definition:</b> Region.h:52</div></div>
|
||||
<div class="ttc" id="anamespacefair_1_1mq_1_1shmem_html"><div class="ttname"><a href="namespacefair_1_1mq_1_1shmem.html">fair::mq::shmem</a></div><div class="ttdef"><b>Definition:</b> Common.h:33</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
101
v1.4.33/SDK_8h_source.html
Normal file
@@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/SDK.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">SDK.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// IWYU pragma: begin_exports</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/sdk/AsioAsyncOp.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/sdk/AsioBase.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/sdk/DDSAgent.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/sdk/DDSEnvironment.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/sdk/DDSInfo.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <fairmq/sdk/DDSSession.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <fairmq/sdk/DDSTask.h></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <fairmq/sdk/DDSTopology.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <fairmq/sdk/Error.h></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <fairmq/sdk/Topology.h></span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <fairmq/sdk/Traits.h></span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// IWYU pragma: end_exports</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif // FAIR_MQ_SDK_H</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
128
v1.4.33/Semaphore_8h_source.html
Normal file
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Semaphore.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Semaphore.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_SEMAPHORE_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_SEMAPHORE_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">struct </span>Semaphore</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  Semaphore();</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">explicit</span> Semaphore(std::size_t initial_count);</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">auto</span> Wait() -> void;</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1tools_1_1Semaphore.html"> 31</a></span>  <span class="keyword">auto</span> Signal() -> void;</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">auto</span> GetCount() const -> std::<span class="keywordtype">size_t</span>;</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> private:</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  std::<span class="keywordtype">size_t</span> fCount;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  mutable std::mutex fMutex;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  std::condition_variable fCv;</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> };</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> struct <a class="code" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">SharedSemaphore</a></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">SharedSemaphore</a>();</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">explicit</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">SharedSemaphore</a>(std::size_t initial_count);</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">auto</span> Wait() -> void;</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html"> 50</a></span>  <span class="keyword">auto</span> Signal() -> void;</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">auto</span> GetCount() const -> std::<span class="keywordtype">size_t</span>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> private:</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  std::shared_ptr<<a class="code" href="structfair_1_1mq_1_1tools_1_1Semaphore.html">Semaphore</a>> fSemaphore;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_SEMAPHORE_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1SharedSemaphore_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html">fair::mq::tools::SharedSemaphore</a></div><div class="ttdoc">A simple copyable blocking semaphore.</div><div class="ttdef"><b>Definition:</b> Semaphore.h:51</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Semaphore_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Semaphore.html">fair::mq::tools::Semaphore</a></div><div class="ttdoc">A simple blocking semaphore.</div><div class="ttdef"><b>Definition:</b> Semaphore.h:32</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
135
v1.4.33/StateMachine_8h_source.html
Normal file
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/StateMachine.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">StateMachine.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQSTATEMACHINE_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQSTATEMACHINE_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/States.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <functional></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">class </span>StateMachine</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  StateMachine();</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">virtual</span> ~StateMachine();</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1StateMachine.html"> 28</a></span>  <span class="keywordtype">bool</span> ChangeState(<span class="keyword">const</span> Transition transition);</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordtype">bool</span> ChangeState(<span class="keyword">const</span> std::string& transition) { <span class="keywordflow">return</span> ChangeState(GetTransition(transition)); }</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">void</span> SubscribeToStateChange(<span class="keyword">const</span> std::string& key, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> State)> callback);</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> UnsubscribeFromStateChange(<span class="keyword">const</span> std::string& key);</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">void</span> HandleStates(std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> State)> callback);</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">void</span> StopHandlingStates();</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> SubscribeToNewTransition(<span class="keyword">const</span> std::string& key, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> Transition)> callback);</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">void</span> UnsubscribeFromNewTransition(<span class="keyword">const</span> std::string& key);</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">bool</span> NewStatePending() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">void</span> WaitForPendingState() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordtype">bool</span> WaitForPendingStateFor(<span class="keyword">const</span> <span class="keywordtype">int</span> durationInMs) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  State GetCurrentState() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  std::string GetCurrentStateName() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">void</span> Start();</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">void</span> ProcessWork();</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">struct </span>ErrorStateException : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  std::shared_ptr<void> fFsm;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSTATEMACHINE_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
168
v1.4.33/StateQueue_8h_source.html
Normal file
@@ -0,0 +1,168 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/StateQueue.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">StateQueue.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQSTATEQUEUE_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQSTATEQUEUE_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/States.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <queue></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <mutex></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <utility></span> <span class="comment">// pair</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <condition_variable></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">class </span>StateQueue</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  StateQueue() {}</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  ~StateQueue() {}</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classfair_1_1mq_1_1StateQueue.html"> 29</a></span>  fair::mq::State WaitForNext()</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  std::unique_lock<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordflow">while</span> (fStates.empty()) {</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  fCV.wait_for(lock, std::chrono::milliseconds(50));</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  }</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  fair::mq::State state = fStates.front();</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (state == fair::mq::State::Error) {</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">throw</span> <a class="code" href="structfair_1_1mq_1_1DeviceErrorState.html">DeviceErrorState</a>(<span class="stringliteral">"Controlled device transitioned to error state."</span>);</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  fStates.pop();</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">return</span> state;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Rep, <span class="keyword">typename</span> Period></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  std::pair<bool, fair::mq::State> WaitForNext(std::chrono::duration<Rep, Period> <span class="keyword">const</span>& duration)</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  std::unique_lock<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  fCV.wait_for(lock, duration);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">if</span> (fStates.empty()) {</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> { <span class="keyword">false</span>, fair::mq::State::Ok };</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  fair::mq::State state = fStates.front();</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (state == fair::mq::State::Error) {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">throw</span> DeviceErrorState(<span class="stringliteral">"Controlled device transitioned to error state."</span>);</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  fStates.pop();</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> { <span class="keyword">true</span>, state };</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">void</span> WaitForState(fair::mq::State state) { <span class="keywordflow">while</span> (WaitForNext() != state) {} }</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">void</span> Push(fair::mq::State state)</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  fStates.push(state);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  fCV.notify_all();</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordtype">void</span> Clear()</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  std::lock_guard<std::mutex> lock(fMtx);</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  fStates = std::queue<fair::mq::State>();</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  std::queue<fair::mq::State> fStates;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  std::mutex fMtx;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  std::condition_variable fCV;</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> };</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSTATEQUEUE_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1DeviceErrorState_html"><div class="ttname"><a href="structfair_1_1mq_1_1DeviceErrorState.html">fair::mq::DeviceErrorState</a></div><div class="ttdef"><b>Definition:</b> States.h:66</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
143
v1.4.33/States_8h_source.html
Normal file
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/States.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">States.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIRMQSTATES_H_</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIRMQSTATES_H_</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">enum class</span> State : int</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  Undefined = 0,</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  Ok,</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  Error,</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  Idle,</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  InitializingDevice,</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  Initialized,</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  Binding,</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  Bound,</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  Connecting,</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  DeviceReady,</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  InitializingTask,</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  Ready,</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  Running,</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  ResettingTask,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  ResettingDevice,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  Exiting</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> };</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">enum class</span> Transition : int</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  Auto = 0,</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  InitDevice,</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  CompleteInit,</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  Bind,</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  Connect,</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  InitTask,</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  Run,</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  Stop,</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  ResetTask,</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  ResetDevice,</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  End,</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  ErrorFound</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> std::string GetStateName(State);</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> std::string GetTransitionName(Transition);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> State GetState(<span class="keyword">const</span> std::string& state);</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> Transition GetTransition(<span class="keyword">const</span> std::string& transition);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">struct </span>DeviceErrorState : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> State& state) { <span class="keywordflow">return</span> os << GetStateName(state); }</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">inline</span> std::ostream& operator<<(std::ostream& os, <span class="keyword">const</span> Transition& transition) { <span class="keywordflow">return</span> os << GetTransitionName(transition); }</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1DeviceErrorState.html"> 66</a></span>  </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIRMQSTATES_H_ */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
115
v1.4.33/Strings_8h_source.html
Normal file
@@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Strings.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Strings.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_STRINGS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_STRINGS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <array></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <initializer_list></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <sstream></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">template</span><<span class="keyword">typename</span> ... T></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">auto</span> ToString(T&&... t) -> std::string</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  std::stringstream ss;</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  (void)std::initializer_list<int>{(ss << t, 0)...};</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">return</span> ss.str();</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> }</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">inline</span> <span class="keyword">auto</span> ToStrVector(<span class="keyword">const</span> <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>*<span class="keyword">const</span>* argv, <span class="keyword">const</span> <span class="keywordtype">bool</span> dropProgramName = <span class="keyword">true</span>) -> std::vector<std::string></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">if</span> (dropProgramName) {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">return</span> std::vector<std::string>(argv + 1, argv + argc);</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">return</span> std::vector<std::string>(argv, argv + argc);</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  }</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_STRINGS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
164
v1.4.33/SuboptParser_8cxx.html
Normal file
@@ -0,0 +1,164 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/SuboptParser.cxx File 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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#enum-members">Enumerations</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SuboptParser.cxx File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Parser implementation for key-value subopt format.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <fairmq/SuboptParser.h></code><br />
|
||||
<code>#include <fairmq/JSONParser.h></code><br />
|
||||
<code>#include <fairlogger/Logger.h></code><br />
|
||||
<code>#include <boost/property_tree/ptree.hpp></code><br />
|
||||
<code>#include <string_view></code><br />
|
||||
<code>#include <utility></code><br />
|
||||
<code>#include <cstring></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for SuboptParser.cxx:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="SuboptParser_8cxx__incl.png" border="0" usemap="#fairmq_2SuboptParser_8cxx" alt=""/></div>
|
||||
<map name="fairmq_2SuboptParser_8cxx" id="fairmq_2SuboptParser_8cxx">
|
||||
<area shape="rect" title="Parser implementation for key-value subopt format." alt="" coords="1341,5,1521,32"/>
|
||||
<area shape="rect" href="SuboptParser_8h_source.html" title=" " alt="" coords="678,87,843,114"/>
|
||||
<area shape="rect" title=" " alt="" coords="1352,333,1412,360"/>
|
||||
<area shape="rect" href="JSONParser_8h_source.html" title=" " alt="" coords="142,87,294,114"/>
|
||||
<area shape="rect" title=" " alt="" coords="1359,87,1503,114"/>
|
||||
<area shape="rect" title=" " alt="" coords="1528,80,1678,121"/>
|
||||
<area shape="rect" title=" " alt="" coords="1702,87,1800,114"/>
|
||||
<area shape="rect" title=" " alt="" coords="1824,87,1891,114"/>
|
||||
<area shape="rect" href="Properties_8h_source.html" title=" " alt="" coords="623,177,770,203"/>
|
||||
<area shape="rect" title=" " alt="" coords="188,333,247,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="794,177,857,203"/>
|
||||
<area shape="rect" href="EventManager_8h_source.html" title=" " alt="" coords="672,259,846,285"/>
|
||||
<area shape="rect" title=" " alt="" coords="1241,333,1328,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="272,333,396,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="1130,333,1217,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="420,333,532,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="922,259,1108,285"/>
|
||||
<area shape="rect" title=" " alt="" coords="1132,259,1183,285"/>
|
||||
<area shape="rect" title=" " alt="" coords="306,259,393,285"/>
|
||||
<area shape="rect" title=" " alt="" coords="469,259,545,285"/>
|
||||
<area shape="rect" title=" " alt="" coords="1028,333,1106,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="556,333,620,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="645,333,836,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="860,333,1004,360"/>
|
||||
<area shape="rect" title=" " alt="" coords="29,169,180,211"/>
|
||||
</map>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespacefair_1_1mq"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefair_1_1mq.html">fair::mq</a></td></tr>
|
||||
<tr class="memdesc:namespacefair_1_1mq"><td class="mdescLeft"> </td><td class="mdescRight">Tools for interfacing containers to the transport via polymorphic allocators. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
<tr class="memitem:a52eadbe26f86865bc788dec7dff08530"><td class="memItemLeft" align="right" valign="top"><a id="a52eadbe26f86865bc788dec7dff08530"></a>enum  </td><td class="memItemRight" valign="bottom"><b>channelOptionKeyIds</b> { <br />
|
||||
  <b>NAME</b> = 0,
|
||||
<b>TYPE</b>,
|
||||
<b>METHOD</b>,
|
||||
<b>ADDRESS</b>,
|
||||
<br />
|
||||
  <b>TRANSPORT</b>,
|
||||
<b>SNDBUFSIZE</b>,
|
||||
<b>RCVBUFSIZE</b>,
|
||||
<b>SNDKERNELSIZE</b>,
|
||||
<br />
|
||||
  <b>RCVKERNELSIZE</b>,
|
||||
<b>LINGER</b>,
|
||||
<b>RATELOGGING</b>,
|
||||
<b>PORTRANGEMIN</b>,
|
||||
<br />
|
||||
  <b>PORTRANGEMAX</b>,
|
||||
<b>AUTOBIND</b>,
|
||||
<b>NUMSOCKETS</b>,
|
||||
<b>lastsocketkey</b>
|
||||
<br />
|
||||
}</td></tr>
|
||||
<tr class="separator:a52eadbe26f86865bc788dec7dff08530"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a1486a99015b84751cfcd1cac55bb351e"><td class="memItemLeft" align="right" valign="top"><a id="a1486a99015b84751cfcd1cac55bb351e"></a>
|
||||
Properties </td><td class="memItemRight" valign="bottom"><b>fair::mq::SuboptParser</b> (const vector< string > &channelConfig, const string &deviceId)</td></tr>
|
||||
<tr class="separator:a1486a99015b84751cfcd1cac55bb351e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Parser implementation for key-value subopt format. </p>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="#" onclick="location.href='mai'+'lto:'+'Mat'+'th'+'ias'+'.R'+'ich'+'te'+'r@s'+'ci'+'eq.'+'ne'+'t'; return false;">Matth<span style="display: none;">.nosp@m.</span>ias.<span style="display: none;">.nosp@m.</span>Richt<span style="display: none;">.nosp@m.</span>er@s<span style="display: none;">.nosp@m.</span>cieq.<span style="display: none;">.nosp@m.</span>net</a> </dd></dl>
|
||||
<dl class="section since"><dt>Since</dt><dd>2017-03-30 </dd></dl>
|
||||
</div></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
27
v1.4.33/SuboptParser_8cxx__incl.map
Normal file
@@ -0,0 +1,27 @@
|
||||
<map id="fairmq/SuboptParser.cxx" name="fairmq/SuboptParser.cxx">
|
||||
<area shape="rect" id="node1" title="Parser implementation for key-value subopt format." alt="" coords="1341,5,1521,32"/>
|
||||
<area shape="rect" id="node2" href="$SuboptParser_8h_source.html" title=" " alt="" coords="678,87,843,114"/>
|
||||
<area shape="rect" id="node10" title=" " alt="" coords="1352,333,1412,360"/>
|
||||
<area shape="rect" id="node20" href="$JSONParser_8h_source.html" title=" " alt="" coords="142,87,294,114"/>
|
||||
<area shape="rect" id="node22" title=" " alt="" coords="1359,87,1503,114"/>
|
||||
<area shape="rect" id="node23" title=" " alt="" coords="1528,80,1678,121"/>
|
||||
<area shape="rect" id="node24" title=" " alt="" coords="1702,87,1800,114"/>
|
||||
<area shape="rect" id="node25" title=" " alt="" coords="1824,87,1891,114"/>
|
||||
<area shape="rect" id="node3" href="$Properties_8h_source.html" title=" " alt="" coords="623,177,770,203"/>
|
||||
<area shape="rect" id="node7" title=" " alt="" coords="188,333,247,360"/>
|
||||
<area shape="rect" id="node19" title=" " alt="" coords="794,177,857,203"/>
|
||||
<area shape="rect" id="node4" href="$EventManager_8h_source.html" title=" " alt="" coords="672,259,846,285"/>
|
||||
<area shape="rect" id="node8" title=" " alt="" coords="1241,333,1328,360"/>
|
||||
<area shape="rect" id="node9" title=" " alt="" coords="272,333,396,360"/>
|
||||
<area shape="rect" id="node11" title=" " alt="" coords="1130,333,1217,360"/>
|
||||
<area shape="rect" id="node12" title=" " alt="" coords="420,333,532,360"/>
|
||||
<area shape="rect" id="node15" title=" " alt="" coords="922,259,1108,285"/>
|
||||
<area shape="rect" id="node16" title=" " alt="" coords="1132,259,1183,285"/>
|
||||
<area shape="rect" id="node17" title=" " alt="" coords="306,259,393,285"/>
|
||||
<area shape="rect" id="node18" title=" " alt="" coords="469,259,545,285"/>
|
||||
<area shape="rect" id="node5" title=" " alt="" coords="1028,333,1106,360"/>
|
||||
<area shape="rect" id="node6" title=" " alt="" coords="556,333,620,360"/>
|
||||
<area shape="rect" id="node13" title=" " alt="" coords="645,333,836,360"/>
|
||||
<area shape="rect" id="node14" title=" " alt="" coords="860,333,1004,360"/>
|
||||
<area shape="rect" id="node21" title=" " alt="" coords="29,169,180,211"/>
|
||||
</map>
|
||||
1
v1.4.33/SuboptParser_8cxx__incl.md5
Normal file
@@ -0,0 +1 @@
|
||||
1f89d47a55f5a8d8c8c3082212ef6a5d
|
||||
BIN
v1.4.33/SuboptParser_8cxx__incl.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
101
v1.4.33/SuboptParser_8h_source.html
Normal file
@@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/SuboptParser.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">SuboptParser.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public License (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef FAIR_MQ_SUBOPTPARSER_H</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define FAIR_MQ_SUBOPTPARSER_H</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/Properties.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacefair_1_1mq.html#a9d21f3651cb922015015a9768eb46e9f"> 42</a></span> Properties SuboptParser(<span class="keyword">const</span> std::vector<std::string>& channelConfig, <span class="keyword">const</span> std::string& deviceId);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SUBOPTPARSER_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
99
v1.4.33/Tools_8h_source.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/Tools.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Tools.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// IWYU pragma: begin_exports</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <fairmq/tools/CppSTL.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fairmq/tools/InstanceLimit.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <fairmq/tools/Network.h></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fairmq/tools/Process.h></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <fairmq/tools/RateLimit.h></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <fairmq/tools/Semaphore.h></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <fairmq/tools/Unique.h></span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <fairmq/tools/Version.h></span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// IWYU pragma: end_exports</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif // FAIR_MQ_TOOLS_H</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
1270
v1.4.33/Topology_8h_source.html
Normal file
121
v1.4.33/Traits_8h_source.html
Normal file
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/sdk/Traits.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_02bd51ad6cbd3c7b005f7a6d7cf0a7f8.html">sdk</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Traits.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_SDK_TRAITS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_SDK_TRAITS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <asio/associated_allocator.hpp></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <asio/associated_executor.hpp></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <type_traits></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span>asio::detail {</div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> Executor></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">struct </span>associated_executor_impl<T,</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  Executor,</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  std::enable_if_t<is_executor<typename T::ExecutorType>::value>></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">using</span> type = <span class="keyword">typename</span> T::ExecutorType;</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structasio_1_1detail_1_1associated__executor__impl_3_01T_00_01Executor_00_01std_1_1enable__if__t8594d9cbb34abbbc0c8a1aee673127b7.html"> 26</a></span>  <span class="keyword">static</span> <span class="keyword">auto</span> get(<span class="keyword">const</span> T& obj, <span class="keyword">const</span> Executor& <span class="comment">/*ex = Executor()*/</span>) noexcept -> type</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  {</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">return</span> obj.GetExecutor();</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  }</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> };</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> Allocator></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">struct </span>associated_allocator_impl<T,</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  Allocator,</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  std::enable_if_t<T::AllocatorType>></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">using</span> type = <span class="keyword">typename</span> T::AllocatorType;</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structasio_1_1detail_1_1associated__allocator__impl_3_01T_00_01Allocator_00_01std_1_1enable__if_9f6cfaeba1a998a7065a3c7ab77dfaec.html"> 40</a></span>  <span class="keyword">static</span> <span class="keyword">auto</span> get(<span class="keyword">const</span> T& obj, <span class="keyword">const</span> Allocator& <span class="comment">/*alloc = Allocator()*/</span>) noexcept -> type</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> obj.GetAllocator();</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> };</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> } <span class="comment">/* namespace asio::detail */</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_SDK_TRAITS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
141
v1.4.33/Transports_8h_source.html
Normal file
@@ -0,0 +1,141 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/Transports.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Transports.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TRANSPORTS_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TRANSPORTS_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <fairmq/tools/Strings.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <stdexcept></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <unordered_map></span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">enum class</span> Transport</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  DEFAULT,</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  ZMQ,</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  SHM,</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  OFI</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> };</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">struct </span>TransportError : std::runtime_error { <span class="keyword">using</span> std::runtime_error::runtime_error; };</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespacefair_1_1mq.html">fair::mq</a></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1TransportError.html"> 36</a></span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> std::unordered_map<std::string, Transport> TransportTypes {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { <span class="stringliteral">"default"</span>, Transport::DEFAULT },</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { <span class="stringliteral">"zeromq"</span>, Transport::ZMQ },</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { <span class="stringliteral">"shmem"</span>, Transport::SHM },</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { <span class="stringliteral">"ofi"</span>, Transport::OFI }</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> };</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> std::unordered_map<Transport, std::string> TransportNames {</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { Transport::DEFAULT, <span class="stringliteral">"default"</span> },</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { Transport::ZMQ, <span class="stringliteral">"zeromq"</span> },</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { Transport::SHM, <span class="stringliteral">"shmem"</span> },</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  { Transport::OFI, <span class="stringliteral">"ofi"</span> }</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> };</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">inline</span> std::string TransportName(Transport transport)</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> TransportNames[transport];</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">inline</span> Transport TransportType(<span class="keyword">const</span> std::string& transport)</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">try</span> {</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> TransportTypes.at(transport);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> } <span class="keywordflow">catch</span> (std::out_of_range&) {</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">throw</span> TransportError(tools::ToString(<span class="stringliteral">"Unknown transport provided: "</span>, transport));</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> } <span class="comment">// namespace fair::mq</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TRANSPORTS_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespacefair_1_1mq_html"><div class="ttname"><a href="namespacefair_1_1mq.html">fair::mq</a></div><div class="ttdoc">Tools for interfacing containers to the transport via polymorphic allocators.</div><div class="ttdef"><b>Definition:</b> DeviceRunner.h:23</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
100
v1.4.33/Unique_8h_source.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Unique.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Unique.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_UNIQUE_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_UNIQUE_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> {</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// generates UUID string</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> std::string Uuid();</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// generates UUID and returns its hash</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> std::size_t UuidHash();</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_UNIQUE_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
109
v1.4.33/Version_8h_source.html
Normal file
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: fairmq/tools/Version.h Source File</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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 id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d6b28f7731906a8cbc4171450df4b180.html">fairmq</a></li><li class="navelem"><a class="el" href="dir_b7a9729ec9acb584ba3af78f8b60e470.html">tools</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Version.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/********************************************************************************</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * *</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This software is distributed under the terms of the *</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * GNU Lesser General Public Licence (LGPL) version 3, *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * copied verbatim in the file "LICENSE" *</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> ********************************************************************************/</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef FAIR_MQ_TOOLS_VERSION_H</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#define FAIR_MQ_TOOLS_VERSION_H</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <ostream></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <tuple></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">namespace </span>fair::mq::tools</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">struct </span>Version</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> fkMajor, fkMinor, fkPatch;</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator< (<span class="keyword">const</span> Version& lhs, <span class="keyword">const</span> Version& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> std::tie(lhs.fkMajor, lhs.fkMinor, lhs.fkPatch) < std::tie(rhs.fkMajor, rhs.fkMinor, rhs.fkPatch); }</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator> (<span class="keyword">const</span> Version& lhs, <span class="keyword">const</span> Version& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> rhs < lhs; }</div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structfair_1_1mq_1_1tools_1_1Version.html"> 24</a></span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<=(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Version</a>& lhs, <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Version</a>& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> !(lhs > rhs); }</div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator>=(<span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Version</a>& lhs, <span class="keyword">const</span> <a class="code" href="structfair_1_1mq_1_1tools_1_1Version.html">Version</a>& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> !(lhs < rhs); }</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator==(<span class="keyword">const</span> Version& lhs, <span class="keyword">const</span> Version& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> std::tie(lhs.fkMajor, lhs.fkMinor, lhs.fkPatch) == std::tie(rhs.fkMajor, rhs.fkMinor, rhs.fkPatch); }</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator!=(<span class="keyword">const</span> Version& lhs, <span class="keyword">const</span> Version& rhs) -> <span class="keywordtype">bool</span> { <span class="keywordflow">return</span> !(lhs == rhs); }</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">friend</span> <span class="keyword">auto</span> operator<<(std::ostream& os, <span class="keyword">const</span> Version& v) -> std::ostream& { <span class="keywordflow">return</span> os << v.fkMajor << <span class="stringliteral">"."</span> << v.fkMinor << <span class="stringliteral">"."</span> << v.fkPatch; }</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> };</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> } <span class="comment">// namespace fair::mq::tools</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* FAIR_MQ_TOOLS_VERSION_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="astructfair_1_1mq_1_1tools_1_1Version_html"><div class="ttname"><a href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a></div><div class="ttdef"><b>Definition:</b> Version.h:25</div></div>
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
299
v1.4.33/annotated.html
Normal file
@@ -0,0 +1,299 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: Class List</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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 class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Class List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span><span onclick="javascript:toggleLevel(6);">6</span>]</div><table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span class="icona"><span class="icon">N</span></span><b>asio</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">▼</span><span class="icona"><span class="icon">N</span></span><b>detail</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structasio_1_1detail_1_1associated__allocator__impl_3_01T_00_01Allocator_00_01std_1_1enable__if_9f6cfaeba1a998a7065a3c7ab77dfaec.html" target="_self">associated_allocator_impl< T, Allocator, std::enable_if_t< T::AllocatorType > ></a></td><td class="desc">Specialize to match our coding conventions </td></tr>
|
||||
<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structasio_1_1detail_1_1associated__executor__impl_3_01T_00_01Executor_00_01std_1_1enable__if__t8594d9cbb34abbbc0c8a1aee673127b7.html" target="_self">associated_executor_impl< T, Executor, std::enable_if_t< is_executor< typename T::ExecutorType >::value > ></a></td><td class="desc">Specialize to match our coding conventions </td></tr>
|
||||
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span class="icona"><span class="icon">N</span></span><b>fair</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">▼</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacefair_1_1mq.html" target="_self">mq</a></td><td class="desc">Tools for interfacing containers to the transport via polymorphic allocators </td></tr>
|
||||
<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_0_" class="arrow" onclick="toggleFolder('1_0_0_')">►</span><span class="icona"><span class="icon">N</span></span><b>fsm</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1AUTO__E.html" target="_self">AUTO_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1BIND__E.html" target="_self">BIND_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1BINDING__S.html" target="_self">BINDING_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1BOUND__S.html" target="_self">BOUND_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1COMPLETE__INIT__E.html" target="_self">COMPLETE_INIT_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1CONNECT__E.html" target="_self">CONNECT_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1CONNECTING__S.html" target="_self">CONNECTING_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_7_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1DEVICE__READY__S.html" target="_self">DEVICE_READY_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_8_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1END__E.html" target="_self">END_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_9_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1ERROR__FOUND__E.html" target="_self">ERROR_FOUND_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_10_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1ERROR__S.html" target="_self">ERROR_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_11_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1EXITING__S.html" target="_self">EXITING_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_12_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1IDLE__S.html" target="_self">IDLE_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_13_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1INIT__DEVICE__E.html" target="_self">INIT_DEVICE_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_14_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1INIT__TASK__E.html" target="_self">INIT_TASK_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_15_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1INITIALIZED__S.html" target="_self">INITIALIZED_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_16_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1INITIALIZING__DEVICE__S.html" target="_self">INITIALIZING_DEVICE_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_17_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1INITIALIZING__TASK__S.html" target="_self">INITIALIZING_TASK_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_0_18_" class="arrow" onclick="toggleFolder('1_0_0_18_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1Machine__.html" target="_self">Machine_</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_18_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1Machine___1_1DefaultFct.html" target="_self">DefaultFct</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_18_1_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1Machine___1_1transition__table.html" target="_self">transition_table</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_19_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1OK__S.html" target="_self">OK_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_20_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1READY__S.html" target="_self">READY_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_21_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RESET__DEVICE__E.html" target="_self">RESET_DEVICE_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_22_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RESET__TASK__E.html" target="_self">RESET_TASK_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_23_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RESETTING__DEVICE__S.html" target="_self">RESETTING_DEVICE_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_24_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RESETTING__TASK__S.html" target="_self">RESETTING_TASK_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_25_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RUN__E.html" target="_self">RUN_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_26_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1RUNNING__S.html" target="_self">RUNNING_S</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_27_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1fsm_1_1STOP__E.html" target="_self">STOP_E</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_1_" class="arrow" onclick="toggleFolder('1_0_1_')">►</span><span class="icona"><span class="icon">N</span></span><b>hooks</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1hooks_1_1InstantiateDevice.html" target="_self">InstantiateDevice</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1hooks_1_1LoadPlugins.html" target="_self">LoadPlugins</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1hooks_1_1ModifyRawCmdLineArgs.html" target="_self">ModifyRawCmdLineArgs</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1hooks_1_1SetCustomCmdLineOptions.html" target="_self">SetCustomCmdLineOptions</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_2_" class="arrow" onclick="toggleFolder('1_0_2_')">►</span><span class="icona"><span class="icon">N</span></span><b>ofi</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ofi_1_1Context.html" target="_self">Context</a></td><td class="desc">Transport-wide context </td></tr>
|
||||
<tr id="row_1_0_2_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1ContextError.html" target="_self">ContextError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1ControlMessage.html" target="_self">ControlMessage</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionfair_1_1mq_1_1ofi_1_1ControlMessageContent.html" target="_self">ControlMessageContent</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1Empty.html" target="_self">Empty</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ofi_1_1Message.html" target="_self">Message</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_7_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ofi_1_1Poller.html" target="_self">Poller</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_8_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1PostBuffer.html" target="_self">PostBuffer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_9_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1PostMultiPartStartBuffer.html" target="_self">PostMultiPartStartBuffer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_10_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ofi_1_1SilentSocketError.html" target="_self">SilentSocketError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_11_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ofi_1_1Socket.html" target="_self">Socket</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_12_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ofi_1_1TransportFactory.html" target="_self">TransportFactory</a></td><td class="desc">FairMQ transport factory for the ofi transport </td></tr>
|
||||
<tr id="row_1_0_3_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_3_" class="arrow" onclick="toggleFolder('1_0_3_')">►</span><span class="icona"><span class="icon">N</span></span><b>plugins</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1plugins_1_1Config.html" target="_self">Config</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1plugins_1_1Control.html" target="_self">Control</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1plugins_1_1DDS.html" target="_self">DDS</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1plugins_1_1DDSConfig.html" target="_self">DDSConfig</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1plugins_1_1DDSSubscription.html" target="_self">DDSSubscription</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1plugins_1_1IofN.html" target="_self">IofN</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1plugins_1_1PMIxPlugin.html" target="_self">PMIxPlugin</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1plugins_1_1terminal__config.html" target="_self">terminal_config</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_4_" class="arrow" onclick="toggleFolder('1_0_4_')">►</span><span class="icona"><span class="icon">N</span></span><b>sdk</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_4_0_" class="arrow" onclick="toggleFolder('1_0_4_0_')">►</span><span class="icona"><span class="icon">N</span></span><b>cmd</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1ChangeState.html" target="_self">ChangeState</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_1_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CheckState.html" target="_self">CheckState</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_2_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmd.html" target="_self">Cmd</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span id="arr_1_0_4_0_3_" class="arrow" onclick="toggleFolder('1_0_4_0_3_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds.html" target="_self">Cmds</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_3_0_" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Cmds_1_1CommandFormatError.html" target="_self">CommandFormatError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_4_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Config.html" target="_self">Config</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_5_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1CurrentState.html" target="_self">CurrentState</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_6_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1DumpConfig.html" target="_self">DumpConfig</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_7_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1GetProperties.html" target="_self">GetProperties</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_8_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1Properties.html" target="_self">Properties</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_9_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1PropertiesSet.html" target="_self">PropertiesSet</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_10_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SetProperties.html" target="_self">SetProperties</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_11_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChange.html" target="_self">StateChange</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_12_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeExitingReceived.html" target="_self">StateChangeExitingReceived</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_13_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeSubscription.html" target="_self">StateChangeSubscription</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_14_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1StateChangeUnsubscription.html" target="_self">StateChangeUnsubscription</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_15_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscribeToStateChange.html" target="_self">SubscribeToStateChange</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_16_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1SubscriptionHeartbeat.html" target="_self">SubscriptionHeartbeat</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_17_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1TransitionStatus.html" target="_self">TransitionStatus</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_0_18_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1cmd_1_1UnsubscribeFromStateChange.html" target="_self">UnsubscribeFromStateChange</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp.html" target="_self">AsioAsyncOp</a></td><td class="desc">Interface for Asio-compliant asynchronous operation, see <a href="https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/reference/asynchronous_operations.html">https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/reference/asynchronous_operations.html</a> </td></tr>
|
||||
<tr id="row_1_0_4_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOp_3_01Executor_00_01Allocator_00_01SignatureReturnType_07Si5d9a9132c7605e8b6a2e5b55defff644.html" target="_self">AsioAsyncOp< Executor, Allocator, SignatureReturnType(SignatureFirstArgType, SignatureArgTypes...)></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImpl.html" target="_self">AsioAsyncOpImpl</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1AsioAsyncOpImplBase.html" target="_self">AsioAsyncOpImplBase</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1AsioBase.html" target="_self">AsioBase</a></td><td class="desc">Base for creating Asio-enabled I/O objects </td></tr>
|
||||
<tr id="row_1_0_4_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1BasicTopology.html" target="_self">BasicTopology</a></td><td class="desc">Represents a FairMQ topology </td></tr>
|
||||
<tr id="row_1_0_4_7_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSAgent.html" target="_self">DDSAgent</a></td><td class="desc">Represents a DDS agent </td></tr>
|
||||
<tr id="row_1_0_4_8_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSChannel.html" target="_self">DDSChannel</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_9_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSCollection.html" target="_self">DDSCollection</a></td><td class="desc">Represents a DDS collection </td></tr>
|
||||
<tr id="row_1_0_4_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_4_10_" class="arrow" onclick="toggleFolder('1_0_4_10_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSEnvironment.html" target="_self">DDSEnvironment</a></td><td class="desc">Sets up the DDS environment (object helper) </td></tr>
|
||||
<tr id="row_1_0_4_10_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span id="arr_1_0_4_10_0_" class="arrow" onclick="toggleFolder('1_0_4_10_0_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl.html" target="_self">Impl</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_10_0_0_" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSEnvironment_1_1Impl_1_1Tag.html" target="_self">Tag</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_4_11_" class="arrow" onclick="toggleFolder('1_0_4_11_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSSession.html" target="_self">DDSSession</a></td><td class="desc">Represents a DDS session </td></tr>
|
||||
<tr id="row_1_0_4_11_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1AgentCount.html" target="_self">AgentCount</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_11_1_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1CommanderInfo.html" target="_self">CommanderInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_11_2_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSSession_1_1Impl.html" target="_self">Impl</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_12_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSTask.html" target="_self">DDSTask</a></td><td class="desc">Represents a DDS task </td></tr>
|
||||
<tr id="row_1_0_4_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_4_13_" class="arrow" onclick="toggleFolder('1_0_4_13_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1sdk_1_1DDSTopology.html" target="_self">DDSTopology</a></td><td class="desc">Represents a DDS topology </td></tr>
|
||||
<tr id="row_1_0_4_13_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DDSTopology_1_1Impl.html" target="_self">Impl</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_14_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1DeviceStatus.html" target="_self">DeviceStatus</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_4_15_" class="arrow" onclick="toggleFolder('1_0_4_15_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1GetPropertiesResult.html" target="_self">GetPropertiesResult</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_15_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1GetPropertiesResult_1_1Device.html" target="_self">Device</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_16_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1sdk_1_1RuntimeError.html" target="_self">RuntimeError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_5_" class="arrow" onclick="toggleFolder('1_0_5_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacefair_1_1mq_1_1shmem.html" target="_self">shmem</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1BufferDebugInfo.html" target="_self">BufferDebugInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1DeviceCounter.html" target="_self">DeviceCounter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1EventCounter.html" target="_self">EventCounter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1Manager.html" target="_self">Manager</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1Message.html" target="_self">Message</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1MetaHeader.html" target="_self">MetaHeader</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_5_6_" class="arrow" onclick="toggleFolder('1_0_5_6_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1Monitor.html" target="_self">Monitor</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1Monitor_1_1DaemonPresent.html" target="_self">DaemonPresent</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1Poller.html" target="_self">Poller</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1Region.html" target="_self">Region</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1RegionBlock.html" target="_self">RegionBlock</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1RegionCounter.html" target="_self">RegionCounter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1RegionInfo.html" target="_self">RegionInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentAddress.html" target="_self">SegmentAddress</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentAddressFromHandle.html" target="_self">SegmentAddressFromHandle</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocate.html" target="_self">SegmentAllocate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentAllocateAligned.html" target="_self">SegmentAllocateAligned</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentBufferShrink.html" target="_self">SegmentBufferShrink</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentDeallocate.html" target="_self">SegmentDeallocate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentFreeMemory.html" target="_self">SegmentFreeMemory</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentHandleFromAddress.html" target="_self">SegmentHandleFromAddress</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_20_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentInfo.html" target="_self">SegmentInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_21_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentMemoryZeroer.html" target="_self">SegmentMemoryZeroer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_22_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SegmentSize.html" target="_self">SegmentSize</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SessionId.html" target="_self">SessionId</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1SharedMemoryError.html" target="_self">SharedMemoryError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1ShmId.html" target="_self">ShmId</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1Socket.html" target="_self">Socket</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1TerminalConfig.html" target="_self">TerminalConfig</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1TransportFactory.html" target="_self">TransportFactory</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1shmem_1_1UnmanagedRegion.html" target="_self">UnmanagedRegion</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1shmem_1_1ZMsg.html" target="_self">ZMsg</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_6_" class="arrow" onclick="toggleFolder('1_0_6_')">►</span><span class="icona"><span class="icon">N</span></span><b>tools</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1DefaultRouteDetectionError.html" target="_self">DefaultRouteDetectionError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1execute__result.html" target="_self">execute_result</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1InstanceLimiter.html" target="_self">InstanceLimiter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1tools_1_1RateLimiter.html" target="_self">RateLimiter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1Semaphore.html" target="_self">Semaphore</a></td><td class="desc">A simple blocking semaphore </td></tr>
|
||||
<tr id="row_1_0_6_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1SharedSemaphore.html" target="_self">SharedSemaphore</a></td><td class="desc">A simple copyable blocking semaphore </td></tr>
|
||||
<tr id="row_1_0_6_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html" target="_self">Version</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_7_" class="arrow" onclick="toggleFolder('1_0_7_')">►</span><span class="icona"><span class="icon">N</span></span><b>zmq</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1Context.html" target="_self">Context</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1zmq_1_1ContextError.html" target="_self">ContextError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1Message.html" target="_self">Message</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1Poller.html" target="_self">Poller</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1Socket.html" target="_self">Socket</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1TransportFactory.html" target="_self">TransportFactory</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1zmq_1_1UnmanagedRegion.html" target="_self">UnmanagedRegion</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1Alignment.html" target="_self">Alignment</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_9_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ChannelResource.html" target="_self">ChannelResource</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1DeviceErrorState.html" target="_self">DeviceErrorState</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_11_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1DeviceRunner.html" target="_self">DeviceRunner</a></td><td class="desc">Utility class to facilitate a convenient top-level device launch/shutdown </td></tr>
|
||||
<tr id="row_1_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ErrorCategory.html" target="_self">ErrorCategory</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_13_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1Event.html" target="_self">Event</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1EventManager.html" target="_self">EventManager</a></td><td class="desc">Manages event callbacks from different subscribers </td></tr>
|
||||
<tr id="row_1_0_15_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1FairMQMemoryResource.html" target="_self">FairMQMemoryResource</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1MessageBadAlloc.html" target="_self">MessageBadAlloc</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_17_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1MessageError.html" target="_self">MessageError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1OngoingTransition.html" target="_self">OngoingTransition</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_19_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1ParserError.html" target="_self">ParserError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_20_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1Plugin.html" target="_self">Plugin</a></td><td class="desc">Base class for FairMQ plugins </td></tr>
|
||||
<tr id="row_1_0_21_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_21_" class="arrow" onclick="toggleFolder('1_0_21_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1PluginManager.html" target="_self">PluginManager</a></td><td class="desc">Manages and owns plugin instances </td></tr>
|
||||
<tr id="row_1_0_21_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PluginManager_1_1BadSearchPath.html" target="_self">BadSearchPath</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_21_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PluginManager_1_1PluginInstantiationError.html" target="_self">PluginInstantiationError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_21_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PluginManager_1_1PluginLoadError.html" target="_self">PluginLoadError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_21_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PluginManager_1_1ProgramOptionsParseError.html" target="_self">ProgramOptionsParseError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_22_" class="arrow" onclick="toggleFolder('1_0_22_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1PluginServices.html" target="_self">PluginServices</a></td><td class="desc">Facilitates communication between devices and plugins </td></tr>
|
||||
<tr id="row_1_0_22_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PluginServices_1_1DeviceControlError.html" target="_self">DeviceControlError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_23_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PollerError.html" target="_self">PollerError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_24_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1ProgOptions.html" target="_self">ProgOptions</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_25_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PropertyChange.html" target="_self">PropertyChange</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_26_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PropertyChangeAsString.html" target="_self">PropertyChangeAsString</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_27_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1PropertyHelper.html" target="_self">PropertyHelper</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_28_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1PropertyNotFoundError.html" target="_self">PropertyNotFoundError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_29_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1SocketError.html" target="_self">SocketError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_30_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_30_" class="arrow" onclick="toggleFolder('1_0_30_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1StateMachine.html" target="_self">StateMachine</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_30_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1StateMachine_1_1ErrorStateException.html" target="_self">ErrorStateException</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_31_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfair_1_1mq_1_1StateQueue.html" target="_self">StateQueue</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_32_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1TransportError.html" target="_self">TransportError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_33_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfair_1_1mq_1_1TransportFactoryError.html" target="_self">TransportFactoryError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">▼</span><span class="icona"><span class="icon">N</span></span><b>pmix</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_2_0_" class="arrow" onclick="toggleFolder('2_0_')">▼</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpmix_1_1Commands.html" target="_self">Commands</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1Commands_1_1Holder.html" target="_self">Holder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1info.html" target="_self">info</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1pdata.html" target="_self">pdata</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_3_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1proc.html" target="_self">proc</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1rank.html" target="_self">rank</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_5_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1runtime__error.html" target="_self">runtime_error</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpmix_1_1value.html" target="_self">value</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">▼</span><span class="icona"><span class="icon">N</span></span><b>std</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1is__error__code__enum_3_01fair_1_1mq_1_1ErrorCode_01_4.html" target="_self">is_error_code_enum< fair::mq::ErrorCode ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQBenchmarkSampler.html" target="_self">FairMQBenchmarkSampler</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_5_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">▼</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQChannel.html" target="_self">FairMQChannel</a></td><td class="desc">Wrapper class for <a class="el" href="classFairMQSocket.html">FairMQSocket</a> and related methods </td></tr>
|
||||
<tr id="row_5_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFairMQChannel_1_1ChannelConfigurationError.html" target="_self">ChannelConfigurationError</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQDevice.html" target="_self">FairMQDevice</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQMerger.html" target="_self">FairMQMerger</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQMessage.html" target="_self">FairMQMessage</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQMultiplier.html" target="_self">FairMQMultiplier</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQParts.html" target="_self">FairMQParts</a></td><td class="desc"><a class="el" href="classFairMQParts.html" title="FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...">FairMQParts</a> is a lightweight convenience wrapper around a vector of unique pointers to <a class="el" href="classFairMQMessage.html">FairMQMessage</a>, used for sending multi-part messages </td></tr>
|
||||
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQPoller.html" target="_self">FairMQPoller</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQProxy.html" target="_self">FairMQProxy</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFairMQRegionBlock.html" target="_self">FairMQRegionBlock</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFairMQRegionInfo.html" target="_self">FairMQRegionInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQSink.html" target="_self">FairMQSink</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQSocket.html" target="_self">FairMQSocket</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQSplitter.html" target="_self">FairMQSplitter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQTransportFactory.html" target="_self">FairMQTransportFactory</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFairMQUnmanagedRegion.html" target="_self">FairMQUnmanagedRegion</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLinePrinter.html" target="_self">LinePrinter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMiniTopo.html" target="_self">MiniTopo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structStateSubscription.html" target="_self">StateSubscription</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTerminalConfig.html" target="_self">TerminalConfig</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structValInfo.html" target="_self">ValInfo</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
BIN
v1.4.33/bc_s.png
Normal file
|
After Width: | Height: | Size: 676 B |
BIN
v1.4.33/bdwn.png
Normal file
|
After Width: | Height: | Size: 147 B |
178
v1.4.33/classFairMQBenchmarkSampler-members.html
Normal file
@@ -0,0 +1,178 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: Member List</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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="headertitle">
|
||||
<div class="title">FairMQBenchmarkSampler Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AddChannel</b>(const std::string &name, FairMQChannel &&channel) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a>(const fair::mq::Transport transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bind</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a>(const std::string &transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Connect</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultId</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultInitTimeout</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultIOThreads</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultMaxRunTime</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultNetworkInterface</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultRate</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultSession</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultTransportName</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultTransportType</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Deserialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>FairMQBenchmarkSampler</b>() (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#afb850ea8ff5817c69bdb8aaf9ece69b7">FairMQDevice</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a45356d796b842dd000067ad5cf7a63f5">FairMQDevice</a>(const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a08a86dedb427e05c67802e273fdde7cf">FairMQDevice</a>(fair::mq::ProgOptions &config, const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fMaxIterations</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fMemSet</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fMsgAlignment</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fMsgRate</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fMsgSize</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fMultipart</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fNumIterations</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fNumParts</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fOutChannelName</b> (defined in <a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a>)</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetChannel</b>(const std::string &channelName, const int index=0) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetDefaultTransport</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetId</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetInitTimeoutInS</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetNetworkInterface</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetNumIoThreads</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetRawCmdLineArgs</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a>(const fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetVersion</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html#aa515049fe636820d5bdb2032d5e3978c">InitTask</a>() override</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewMessage</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewMessageFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewPoller</b>(const Ts &... inputs) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewPoller</b>(const std::vector< FairMQChannel * > &channels) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewSimpleMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewSimpleMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewStaticMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewStaticMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewUnmanagedRegion</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewUnmanagedRegionFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQMessagePtr &msg, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMsgCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQParts &parts, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMultipartCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>PrintRegisteredChannels</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a>(FairMQParts &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RegisterChannelEndpoint</b>(const std::string &channelName, uint16_t minNumSubChannels=1, uint16_t maxNumSubChannels=1) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>RegisterChannelEndpoints</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html#ae016fde6952dcd0ed671b4a6c51cb835">Run</a>() override</td><td class="entry"><a class="el" href="classFairMQBenchmarkSampler.html">FairMQBenchmarkSampler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>RunStateMachine</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a>(FairMQParts &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Serialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetDefaultTransport</b>(const std::string &name) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetId</b>(const std::string &id) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetInitTimeoutInS</b>(int initTimeoutInS) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetNetworkInterface</b>(const std::string &networkInterface) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetNumIoThreads</b>(int numIoThreads) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetRawCmdLineArgs</b>(const std::vector< std::string > &args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a>(const std::string &transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a>(const std::string &key, std::function< void(const fair::mq::Transition)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a>(const std::string &key, std::function< void(const fair::mq::State)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>TransitionTo</b>(const fair::mq::State state) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>() const -> FairMQTransportFactory *</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a>(std::chrono::duration< Rep, Period > const &duration)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a>(fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a>(const std::string &state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
463
v1.4.33/classFairMQBenchmarkSampler.html
Normal file
@@ -0,0 +1,463 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: FairMQBenchmarkSampler 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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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> |
|
||||
<a href="#pro-attribs">Protected Attributes</a> |
|
||||
<a href="classFairMQBenchmarkSampler-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQBenchmarkSampler Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p><code>#include <<a class="el" href="FairMQBenchmarkSampler_8h_source.html">FairMQBenchmarkSampler.h</a>></code></p>
|
||||
<div class="dynheader">
|
||||
Inheritance diagram for FairMQBenchmarkSampler:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="classFairMQBenchmarkSampler__inherit__graph.png" border="0" usemap="#FairMQBenchmarkSampler_inherit__map" alt="Inheritance graph"/></div>
|
||||
<map name="FairMQBenchmarkSampler_inherit__map" id="FairMQBenchmarkSampler_inherit__map">
|
||||
<area shape="rect" title=" " alt="" coords="5,80,200,107"/>
|
||||
<area shape="rect" href="classFairMQDevice.html" title=" " alt="" coords="47,5,159,32"/>
|
||||
</map>
|
||||
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
||||
<div class="dynheader">
|
||||
Collaboration diagram for FairMQBenchmarkSampler:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="classFairMQBenchmarkSampler__coll__graph.png" border="0" usemap="#FairMQBenchmarkSampler_coll__map" alt="Collaboration graph"/></div>
|
||||
<map name="FairMQBenchmarkSampler_coll__map" id="FairMQBenchmarkSampler_coll__map">
|
||||
<area shape="rect" title=" " alt="" coords="5,171,200,197"/>
|
||||
<area shape="rect" href="classFairMQDevice.html" title=" " alt="" coords="47,95,159,121"/>
|
||||
<area shape="rect" href="classfair_1_1mq_1_1ProgOptions.html" title=" " alt="" coords="23,5,183,32"/>
|
||||
</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:aa515049fe636820d5bdb2032d5e3978c"><td class="memItemLeft" align="right" valign="top"><a id="aa515049fe636820d5bdb2032d5e3978c"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQBenchmarkSampler.html#aa515049fe636820d5bdb2032d5e3978c">InitTask</a> () override</td></tr>
|
||||
<tr class="memdesc:aa515049fe636820d5bdb2032d5e3978c"><td class="mdescLeft"> </td><td class="mdescRight">Task initialization (can be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:aa515049fe636820d5bdb2032d5e3978c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae016fde6952dcd0ed671b4a6c51cb835"><td class="memItemLeft" align="right" valign="top"><a id="ae016fde6952dcd0ed671b4a6c51cb835"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQBenchmarkSampler.html#ae016fde6952dcd0ed671b4a6c51cb835">Run</a> () override</td></tr>
|
||||
<tr class="memdesc:ae016fde6952dcd0ed671b4a6c51cb835"><td class="mdescLeft"> </td><td class="mdescRight">Runs the device (to be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:ae016fde6952dcd0ed671b4a6c51cb835"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a735b2684d4678eb959302911f12223eb"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a> ()</td></tr>
|
||||
<tr class="memdesc:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br /></td></tr>
|
||||
<tr class="separator:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="afb850ea8ff5817c69bdb8aaf9ece69b7"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#afb850ea8ff5817c69bdb8aaf9ece69b7">FairMQDevice</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config)</td></tr>
|
||||
<tr class="memdesc:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor with external <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>. <br /></td></tr>
|
||||
<tr class="separator:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a45356d796b842dd000067ad5cf7a63f5"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a45356d796b842dd000067ad5cf7a63f5">FairMQDevice</a> (const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version)</td></tr>
|
||||
<tr class="memdesc:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that sets the version. <br /></td></tr>
|
||||
<tr class="separator:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a08a86dedb427e05c67802e273fdde7cf"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a08a86dedb427e05c67802e273fdde7cf">FairMQDevice</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config, const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version)</td></tr>
|
||||
<tr class="memdesc:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that sets the version and external <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>. <br /></td></tr>
|
||||
<tr class="separator:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a806cf5c241bf95571654cd327d6e76fe"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a> (const <a class="el" href="classFairMQDevice.html">FairMQDevice</a> &)=delete</td></tr>
|
||||
<tr class="memdesc:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor (disabled) <br /></td></tr>
|
||||
<tr class="separator:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa4e0098922aaf987c2a27c10f4e04fbd"></a>
|
||||
<a class="el" href="classFairMQDevice.html">FairMQDevice</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a> (const <a class="el" href="classFairMQDevice.html">FairMQDevice</a> &)=delete</td></tr>
|
||||
<tr class="memdesc:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator (disabled) <br /></td></tr>
|
||||
<tr class="separator:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a09389ba6934645ca406a963ab5a60e1a"></a>
|
||||
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a> ()</td></tr>
|
||||
<tr class="memdesc:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default destructor. <br /></td></tr>
|
||||
<tr class="separator:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a93c839b68f007bef8e66115efeed9d41"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a> ()</td></tr>
|
||||
<tr class="memdesc:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Outputs the socket transfer rates. <br /></td></tr>
|
||||
<tr class="separator:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a00ba7ec2625e0ce7d1bca9b602920d5b"></a>
|
||||
template<typename Serializer , typename DataType , typename... Args> </td></tr>
|
||||
<tr class="memitem:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>Serialize</b> (<a class="el" href="classFairMQMessage.html">FairMQMessage</a> &msg, DataType &&data, Args &&... args) const</td></tr>
|
||||
<tr class="separator:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a262cb8fbbf7d828a4c076779e7566fed"></a>
|
||||
template<typename Deserializer , typename DataType , typename... Args> </td></tr>
|
||||
<tr class="memitem:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>Deserialize</b> (<a class="el" href="classFairMQMessage.html">FairMQMessage</a> &msg, DataType &&data, Args &&... args) const</td></tr>
|
||||
<tr class="separator:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9458e96239d625186c7e5f9163ae7e2 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a> (FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:ac9458e96239d625186c7e5f9163ae7e2 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a363cf1b520148d9864fa800b4341b77f inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a> (FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a363cf1b520148d9864fa800b4341b77f inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2ff45ca40adf8ad8e046651f14a63f55 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a> (<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a2ff45ca40adf8ad8e046651f14a63f55 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9b4c9df42a95d0e428106244a9ae5c54 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a> (<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a9b4c9df42a95d0e428106244a9ae5c54 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aab6d9bd4d57360a2b85ee3dec980395c"></a>
|
||||
auto </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a> () const -> <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *</td></tr>
|
||||
<tr class="memdesc:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Getter for default transport factory. <br /></td></tr>
|
||||
<tr class="separator:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a76166a3408962d3f57ebfa966aec65a7"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewMessage</b> (Args &&... args)</td></tr>
|
||||
<tr class="separator:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a836d37a65d5ecce1779b63c75379652c"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewMessageFor</b> (const std::string &channel, int index, Args &&... args)</td></tr>
|
||||
<tr class="separator:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a2543793c031c94a2db5142cd51fae31d"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewStaticMessage</b> (const T &data)</td></tr>
|
||||
<tr class="separator:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="abbcd4ce9e3700863e28f07d80cbb1985"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewStaticMessageFor</b> (const std::string &channel, int index, const T &data)</td></tr>
|
||||
<tr class="separator:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a82bb4426f1e314cc719ed282f6bf7548"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessage</b> (const T &data)</td></tr>
|
||||
<tr class="separator:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="abf88eece03b79f9f6d9cec0f12913baa"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessageFor</b> (const std::string &channel, int index, const T &data)</td></tr>
|
||||
<tr class="separator:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a806c0e860c59909e5a2b946c53c73c89"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQUnmanagedRegionPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewUnmanagedRegion</b> (Args &&... args)</td></tr>
|
||||
<tr class="separator:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a468151007d5f7d430ae94cfdce6e7882"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQUnmanagedRegionPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewUnmanagedRegionFor</b> (const std::string &channel, int index, Args &&... args)</td></tr>
|
||||
<tr class="separator:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a5d2e8221d94f404d18a73b6d06126e2a"></a>
|
||||
template<typename ... Ts> </td></tr>
|
||||
<tr class="memitem:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQPollerPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewPoller</b> (const Ts &... inputs)</td></tr>
|
||||
<tr class="separator:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a89b5fb7dad976206939ff1175a6899ea inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a89b5fb7dad976206939ff1175a6899ea"></a>
|
||||
FairMQPollerPtr </td><td class="memItemRight" valign="bottom"><b>NewPoller</b> (const std::vector< <a class="el" href="classFairMQChannel.html">FairMQChannel</a> * > &channels)</td></tr>
|
||||
<tr class="separator:a89b5fb7dad976206939ff1175a6899ea inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9bddc6f64f9c89b8ffe3670d91c06b29 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a> (const fair::mq::Transport transport)</td></tr>
|
||||
<tr class="separator:a9bddc6f64f9c89b8ffe3670d91c06b29 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa272062ccaff78a61d78ddfbefa25dec"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config)</td></tr>
|
||||
<tr class="memdesc:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Assigns config to the device. <br /></td></tr>
|
||||
<tr class="separator:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="acb7448dc5d278c6f51e3fcf7a49f367e"></a>
|
||||
<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a> () const</td></tr>
|
||||
<tr class="memdesc:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the config. <br /></td></tr>
|
||||
<tr class="separator:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a27655622eac0524d86737aba269651d4"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, bool(T::*memberFunction)(FairMQMessagePtr &msg, int index))</td></tr>
|
||||
<tr class="separator:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a719e0eece74b60c3459b265b1d8db1e1 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a719e0eece74b60c3459b265b1d8db1e1"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, InputMsgCallback callback)</td></tr>
|
||||
<tr class="separator:a719e0eece74b60c3459b265b1d8db1e1 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a4abc9d4a453670012fc317fe534e875b"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, bool(T::*memberFunction)(<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, int index))</td></tr>
|
||||
<tr class="separator:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0b136382dd08310521501ff4ab6de884 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a0b136382dd08310521501ff4ab6de884"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, InputMultipartCallback callback)</td></tr>
|
||||
<tr class="separator:a0b136382dd08310521501ff4ab6de884 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a929c915505060a09885093b1a894c358 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a929c915505060a09885093b1a894c358"></a>
|
||||
<a class="el" href="classFairMQChannel.html">FairMQChannel</a> & </td><td class="memItemRight" valign="bottom"><b>GetChannel</b> (const std::string &channelName, const int index=0)</td></tr>
|
||||
<tr class="separator:a929c915505060a09885093b1a894c358 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a36a6ae99b44226a2bdf8de4be6c50ef8 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a36a6ae99b44226a2bdf8de4be6c50ef8"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><b>RegisterChannelEndpoints</b> ()</td></tr>
|
||||
<tr class="separator:a36a6ae99b44226a2bdf8de4be6c50ef8 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a25c5f3615712f0e4e3aa2667c96be286 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a25c5f3615712f0e4e3aa2667c96be286"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><b>RegisterChannelEndpoint</b> (const std::string &channelName, uint16_t minNumSubChannels=1, uint16_t maxNumSubChannels=1)</td></tr>
|
||||
<tr class="separator:a25c5f3615712f0e4e3aa2667c96be286 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0f2eba92316c226ff1daebd5d8de25c4 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a0f2eba92316c226ff1daebd5d8de25c4"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>PrintRegisteredChannels</b> ()</td></tr>
|
||||
<tr class="separator:a0f2eba92316c226ff1daebd5d8de25c4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a12a348be5f441e0527aae654f9859a89 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a12a348be5f441e0527aae654f9859a89"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetId</b> (const std::string &id)</td></tr>
|
||||
<tr class="separator:a12a348be5f441e0527aae654f9859a89 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4385f446208320a17c22bcbf663c6173 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a4385f446208320a17c22bcbf663c6173"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetId</b> ()</td></tr>
|
||||
<tr class="separator:a4385f446208320a17c22bcbf663c6173 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab0ad1bbc9ab4452d57460c5ceffa8f47 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ab0ad1bbc9ab4452d57460c5ceffa8f47"></a>
|
||||
const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> </td><td class="memItemRight" valign="bottom"><b>GetVersion</b> () const</td></tr>
|
||||
<tr class="separator:ab0ad1bbc9ab4452d57460c5ceffa8f47 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8a64447bc7fa3ca55c6ff004a3d8c2f8 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a8a64447bc7fa3ca55c6ff004a3d8c2f8"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetNumIoThreads</b> (int numIoThreads)</td></tr>
|
||||
<tr class="separator:a8a64447bc7fa3ca55c6ff004a3d8c2f8 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a23428fcb596e66ca3e7d3ca2776bd890 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a23428fcb596e66ca3e7d3ca2776bd890"></a>
|
||||
int </td><td class="memItemRight" valign="bottom"><b>GetNumIoThreads</b> () const</td></tr>
|
||||
<tr class="separator:a23428fcb596e66ca3e7d3ca2776bd890 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abad4a2ad5a139ebaf2f851bd5d037734 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="abad4a2ad5a139ebaf2f851bd5d037734"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetNetworkInterface</b> (const std::string &networkInterface)</td></tr>
|
||||
<tr class="separator:abad4a2ad5a139ebaf2f851bd5d037734 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1cbde24481b77946f5b1972e52de5aba inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a1cbde24481b77946f5b1972e52de5aba"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetNetworkInterface</b> () const</td></tr>
|
||||
<tr class="separator:a1cbde24481b77946f5b1972e52de5aba inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad931f34f50461f4bc85d4e7697d9562e inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad931f34f50461f4bc85d4e7697d9562e"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetDefaultTransport</b> (const std::string &name)</td></tr>
|
||||
<tr class="separator:ad931f34f50461f4bc85d4e7697d9562e inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec098ab7833ecf3eaeec6f8aa6aed724 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aec098ab7833ecf3eaeec6f8aa6aed724"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetDefaultTransport</b> () const</td></tr>
|
||||
<tr class="separator:aec098ab7833ecf3eaeec6f8aa6aed724 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a74dd6b1a4ee8371afb1126c68bc3fb9d inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a74dd6b1a4ee8371afb1126c68bc3fb9d"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetInitTimeoutInS</b> (int initTimeoutInS)</td></tr>
|
||||
<tr class="separator:a74dd6b1a4ee8371afb1126c68bc3fb9d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a80897eabf43ff737314e612edc84558c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a80897eabf43ff737314e612edc84558c"></a>
|
||||
int </td><td class="memItemRight" valign="bottom"><b>GetInitTimeoutInS</b> () const</td></tr>
|
||||
<tr class="separator:a80897eabf43ff737314e612edc84558c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a72517f8d1edab9b879d573fb09e8b5cf inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a> (const std::string &transport)</td></tr>
|
||||
<tr class="separator:a72517f8d1edab9b879d573fb09e8b5cf inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ae3e16932f18d4966d51c906f1fe99d4a"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a> () const</td></tr>
|
||||
<tr class="memdesc:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Gets the default transport name. <br /></td></tr>
|
||||
<tr class="separator:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2d674c1794f63a6721913fa964d89908 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2d674c1794f63a6721913fa964d89908"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetRawCmdLineArgs</b> (const std::vector< std::string > &args)</td></tr>
|
||||
<tr class="separator:a2d674c1794f63a6721913fa964d89908 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a277a1096321320d4d54a7e2c7e65e31a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a277a1096321320d4d54a7e2c7e65e31a"></a>
|
||||
std::vector< std::string > </td><td class="memItemRight" valign="bottom"><b>GetRawCmdLineArgs</b> () const</td></tr>
|
||||
<tr class="separator:a277a1096321320d4d54a7e2c7e65e31a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a37c599287a50f4691fe6cd3488c9cd28 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a37c599287a50f4691fe6cd3488c9cd28"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>RunStateMachine</b> ()</td></tr>
|
||||
<tr class="separator:a37c599287a50f4691fe6cd3488c9cd28 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2">template<typename Rep , typename Period > </td></tr>
|
||||
<tr class="memitem:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a> (std::chrono::duration< Rep, Period > const &duration)</td></tr>
|
||||
<tr class="separator:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a81348221f634f43f5ee94782fcb6f3e7 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a81348221f634f43f5ee94782fcb6f3e7"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>AddChannel</b> (const std::string &name, <a class="el" href="classFairMQChannel.html">FairMQChannel</a> &&channel)</td></tr>
|
||||
<tr class="separator:a81348221f634f43f5ee94782fcb6f3e7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a> (const fair::mq::Transition transition)</td></tr>
|
||||
<tr class="memdesc:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Request a device state transition. <a href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">More...</a><br /></td></tr>
|
||||
<tr class="separator:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a> (const std::string &transition)</td></tr>
|
||||
<tr class="memdesc:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Request a device state transition. <a href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">More...</a><br /></td></tr>
|
||||
<tr class="separator:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7b64f14a98d56fc575d13f7da0ad0a4d"></a>
|
||||
fair::mq::State </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a> ()</td></tr>
|
||||
<tr class="memdesc:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the next state (any) to occur <br /></td></tr>
|
||||
<tr class="separator:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a> (fair::mq::State state)</td></tr>
|
||||
<tr class="memdesc:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the specified state to occur <a href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">More...</a><br /></td></tr>
|
||||
<tr class="separator:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a> (const std::string &state)</td></tr>
|
||||
<tr class="memdesc:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the specified state to occur <a href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">More...</a><br /></td></tr>
|
||||
<tr class="separator:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a916c44294188084712c333182e7cce57 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a916c44294188084712c333182e7cce57"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>TransitionTo</b> (const fair::mq::State state)</td></tr>
|
||||
<tr class="separator:a916c44294188084712c333182e7cce57 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a> (const std::string &key, std::function< void(const fair::mq::State)> callback)</td></tr>
|
||||
<tr class="memdesc:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Subscribe with a callback to state changes. <a href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a> (const std::string &key)</td></tr>
|
||||
<tr class="memdesc:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Unsubscribe from state changes. <a href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">More...</a><br /></td></tr>
|
||||
<tr class="separator:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a> (const std::string &key, std::function< void(const fair::mq::Transition)> callback)</td></tr>
|
||||
<tr class="memdesc:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Subscribe with a callback to incoming state transitions. <a href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">More...</a><br /></td></tr>
|
||||
<tr class="separator:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a> (const std::string &key)</td></tr>
|
||||
<tr class="memdesc:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Unsubscribe from state transitions. <a href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">More...</a><br /></td></tr>
|
||||
<tr class="separator:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ac6e41280dd6cc8b217944a97fd9c548c"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a> () const</td></tr>
|
||||
<tr class="memdesc:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if a new state has been requested, signaling the current handler to stop. <br /></td></tr>
|
||||
<tr class="separator:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7ba52b2fc3908c6bf1391eb5f27b03bd"></a>
|
||||
fair::mq::State </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a> () const</td></tr>
|
||||
<tr class="memdesc:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns the current state. <br /></td></tr>
|
||||
<tr class="separator:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad1b949fc86f1028a1421972d43b37df9"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a> () const</td></tr>
|
||||
<tr class="memdesc:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns the name of the current state as a string. <br /></td></tr>
|
||||
<tr class="separator:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
||||
Protected Attributes</h2></td></tr>
|
||||
<tr class="memitem:a44486c35f7225ca250176be8b22ad5b7"><td class="memItemLeft" align="right" valign="top"><a id="a44486c35f7225ca250176be8b22ad5b7"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><b>fMultipart</b></td></tr>
|
||||
<tr class="separator:a44486c35f7225ca250176be8b22ad5b7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9e23eb533627c92fe9f63c49caf1132"><td class="memItemLeft" align="right" valign="top"><a id="ac9e23eb533627c92fe9f63c49caf1132"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><b>fMemSet</b></td></tr>
|
||||
<tr class="separator:ac9e23eb533627c92fe9f63c49caf1132"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa86e9d2020a648f99562dd1553f4b688"><td class="memItemLeft" align="right" valign="top"><a id="aa86e9d2020a648f99562dd1553f4b688"></a>
|
||||
size_t </td><td class="memItemRight" valign="bottom"><b>fNumParts</b></td></tr>
|
||||
<tr class="separator:aa86e9d2020a648f99562dd1553f4b688"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab7b896c06a63f7a8039ae5bbc8e645fd"><td class="memItemLeft" align="right" valign="top"><a id="ab7b896c06a63f7a8039ae5bbc8e645fd"></a>
|
||||
size_t </td><td class="memItemRight" valign="bottom"><b>fMsgSize</b></td></tr>
|
||||
<tr class="separator:ab7b896c06a63f7a8039ae5bbc8e645fd"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a51773d81bce4a95f3984b8ef93459d13"><td class="memItemLeft" align="right" valign="top"><a id="a51773d81bce4a95f3984b8ef93459d13"></a>
|
||||
size_t </td><td class="memItemRight" valign="bottom"><b>fMsgAlignment</b></td></tr>
|
||||
<tr class="separator:a51773d81bce4a95f3984b8ef93459d13"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad98b051fecdd871b56d202d39064d1b5"><td class="memItemLeft" align="right" valign="top"><a id="ad98b051fecdd871b56d202d39064d1b5"></a>
|
||||
float </td><td class="memItemRight" valign="bottom"><b>fMsgRate</b></td></tr>
|
||||
<tr class="separator:ad98b051fecdd871b56d202d39064d1b5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0c9e23f0ff3b90d36af801d2e879b3ae"><td class="memItemLeft" align="right" valign="top"><a id="a0c9e23f0ff3b90d36af801d2e879b3ae"></a>
|
||||
uint64_t </td><td class="memItemRight" valign="bottom"><b>fNumIterations</b></td></tr>
|
||||
<tr class="separator:a0c9e23f0ff3b90d36af801d2e879b3ae"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad164b49e9080d1d319e28b5b0dff909d"><td class="memItemLeft" align="right" valign="top"><a id="ad164b49e9080d1d319e28b5b0dff909d"></a>
|
||||
uint64_t </td><td class="memItemRight" valign="bottom"><b>fMaxIterations</b></td></tr>
|
||||
<tr class="separator:ad164b49e9080d1d319e28b5b0dff909d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7434ff16bc8b6a65ebcdd6ef3a982b90"><td class="memItemLeft" align="right" valign="top"><a id="a7434ff16bc8b6a65ebcdd6ef3a982b90"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>fOutChannelName</b></td></tr>
|
||||
<tr class="separator:a7434ff16bc8b6a65ebcdd6ef3a982b90"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pro_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a1c67c4cbd6140f35292b13e485f39ce0"></a>
|
||||
std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a></td></tr>
|
||||
<tr class="memdesc:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default transport factory. <br /></td></tr>
|
||||
<tr class="separator:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a02d4d28747aa58c9b67915e79520cc7b"></a>
|
||||
std::unordered_map< fair::mq::Transport, std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a></td></tr>
|
||||
<tr class="memdesc:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Container for transports. <br /></td></tr>
|
||||
<tr class="separator:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a13141f54111f5f724b79143b4303a32f"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a></td></tr>
|
||||
<tr class="memdesc:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Device ID. <br /></td></tr>
|
||||
<tr class="separator:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
||||
Additional Inherited Members</h2></td></tr>
|
||||
<tr class="inherit_header pub_static_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a> (const fair::mq::State state)</td></tr>
|
||||
<tr class="memdesc:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns name of the given state as a string. <a href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">More...</a><br /></td></tr>
|
||||
<tr class="separator:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a> (const fair::mq::Transition transition)</td></tr>
|
||||
<tr class="memdesc:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns name of the given transition as a string. <a href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">More...</a><br /></td></tr>
|
||||
<tr class="separator:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad6e090504ceef5799b6f85b136d1e547"></a>
|
||||
std::unordered_map< std::string, std::vector< <a class="el" href="classFairMQChannel.html">FairMQChannel</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a></td></tr>
|
||||
<tr class="memdesc:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Device channels. <br /></td></tr>
|
||||
<tr class="separator:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a597c3c39cb45accfcf28e44071e4baff"></a>
|
||||
std::unique_ptr< <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a></td></tr>
|
||||
<tr class="memdesc:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Internal program options configuration. <br /></td></tr>
|
||||
<tr class="separator:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a3496403c6124440185111ba3b49fb80d"></a>
|
||||
<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a></td></tr>
|
||||
<tr class="memdesc:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Pointer to config (internal or external) <br /></td></tr>
|
||||
<tr class="separator:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_static_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Static Public Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a5b207943e3276401338e9a3a54dc2403 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a5b207943e3276401338e9a3a54dc2403"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultId</b> = ""</td></tr>
|
||||
<tr class="separator:a5b207943e3276401338e9a3a54dc2403 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2d06052069ad94a9a1dbdfda0fbd9874 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2d06052069ad94a9a1dbdfda0fbd9874"></a>
|
||||
static constexpr int </td><td class="memItemRight" valign="bottom"><b>DefaultIOThreads</b> = 1</td></tr>
|
||||
<tr class="separator:a2d06052069ad94a9a1dbdfda0fbd9874 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a484eef27bd4a618bb157ce1e078b428f inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a484eef27bd4a618bb157ce1e078b428f"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultTransportName</b> = "zeromq"</td></tr>
|
||||
<tr class="separator:a484eef27bd4a618bb157ce1e078b428f inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af4602a67ba7255e1cdfbee223bd3faee inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="af4602a67ba7255e1cdfbee223bd3faee"></a>
|
||||
static constexpr fair::mq::Transport </td><td class="memItemRight" valign="bottom"><b>DefaultTransportType</b> = fair::mq::Transport::ZMQ</td></tr>
|
||||
<tr class="separator:af4602a67ba7255e1cdfbee223bd3faee inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aebeeb3468b8f3c6531b44b15e1069ee5 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aebeeb3468b8f3c6531b44b15e1069ee5"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultNetworkInterface</b> = "default"</td></tr>
|
||||
<tr class="separator:aebeeb3468b8f3c6531b44b15e1069ee5 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ada5af08bd8533ec62efdd2e1e6b53b13 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ada5af08bd8533ec62efdd2e1e6b53b13"></a>
|
||||
static constexpr int </td><td class="memItemRight" valign="bottom"><b>DefaultInitTimeout</b> = 120</td></tr>
|
||||
<tr class="separator:ada5af08bd8533ec62efdd2e1e6b53b13 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a92eab91e99eea4f4cbfd095e536e3455 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a92eab91e99eea4f4cbfd095e536e3455"></a>
|
||||
static constexpr uint64_t </td><td class="memItemRight" valign="bottom"><b>DefaultMaxRunTime</b> = 0</td></tr>
|
||||
<tr class="separator:a92eab91e99eea4f4cbfd095e536e3455 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac2c8dd974b57c3729a706e38bc684fc5 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ac2c8dd974b57c3729a706e38bc684fc5"></a>
|
||||
static constexpr float </td><td class="memItemRight" valign="bottom"><b>DefaultRate</b> = 0.</td></tr>
|
||||
<tr class="separator:ac2c8dd974b57c3729a706e38bc684fc5 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa3eaa8ef93c5758e16409f01ccbd3671 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa3eaa8ef93c5758e16409f01ccbd3671"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultSession</b> = "default"</td></tr>
|
||||
<tr class="separator:aa3eaa8ef93c5758e16409f01ccbd3671 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pro_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a51db444647edcea2464ca3c59d6bb818"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a> ()</td></tr>
|
||||
<tr class="memdesc:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Additional user initialization (can be overloaded in child classes). Prefer to use <a class="el" href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98" title="Task initialization (can be overloaded in child classes)">InitTask()</a>. <br /></td></tr>
|
||||
<tr class="separator:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8716714540007b19024148aedf96bfdc inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a8716714540007b19024148aedf96bfdc"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><b>Bind</b> ()</td></tr>
|
||||
<tr class="separator:a8716714540007b19024148aedf96bfdc inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3eaa3a5b5d11f92073ca863593eb8b6f inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a3eaa3a5b5d11f92073ca863593eb8b6f"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><b>Connect</b> ()</td></tr>
|
||||
<tr class="separator:a3eaa3a5b5d11f92073ca863593eb8b6f inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7578022e18bc2b5b40ba56249cf23719"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a> ()</td></tr>
|
||||
<tr class="memdesc:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called in the RUNNING state once before executing the <a class="el" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e" title="Runs the device (to be overloaded in child classes)">Run()</a>/ConditionalRun() method. <br /></td></tr>
|
||||
<tr class="separator:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad88707048f53c88ef0d6848deb962284"></a>
|
||||
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a> ()</td></tr>
|
||||
<tr class="memdesc:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called during RUNNING state repeatedly until it returns false or device state changes. <br /></td></tr>
|
||||
<tr class="separator:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a56d2e72203b11fb4d636e22018456965"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a> ()</td></tr>
|
||||
<tr class="memdesc:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called in the RUNNING state once after executing the <a class="el" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e" title="Runs the device (to be overloaded in child classes)">Run()</a>/ConditionalRun() method. <br /></td></tr>
|
||||
<tr class="separator:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a9ca6f7041dd312096fce7d42ebd3586c"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a> ()</td></tr>
|
||||
<tr class="memdesc:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Resets the user task (to be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2a1a3157b7cb40ddc299b8865f3ef305"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a> ()</td></tr>
|
||||
<tr class="memdesc:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Resets the device (can be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Sampler to generate traffic for benchmarking. </p>
|
||||
</div><hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>fairmq/devices/<a class="el" href="FairMQBenchmarkSampler_8h_source.html">FairMQBenchmarkSampler.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
5
v1.4.33/classFairMQBenchmarkSampler__coll__graph.map
Normal file
@@ -0,0 +1,5 @@
|
||||
<map id="FairMQBenchmarkSampler" name="FairMQBenchmarkSampler">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="5,171,200,197"/>
|
||||
<area shape="rect" id="node2" href="$classFairMQDevice.html" title=" " alt="" coords="47,95,159,121"/>
|
||||
<area shape="rect" id="node3" href="$classfair_1_1mq_1_1ProgOptions.html" title=" " alt="" coords="23,5,183,32"/>
|
||||
</map>
|
||||
1
v1.4.33/classFairMQBenchmarkSampler__coll__graph.md5
Normal file
@@ -0,0 +1 @@
|
||||
0e349f691d2eaa475d3c184878dd8103
|
||||
BIN
v1.4.33/classFairMQBenchmarkSampler__coll__graph.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
4
v1.4.33/classFairMQBenchmarkSampler__inherit__graph.map
Normal file
@@ -0,0 +1,4 @@
|
||||
<map id="FairMQBenchmarkSampler" name="FairMQBenchmarkSampler">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="5,80,200,107"/>
|
||||
<area shape="rect" id="node2" href="$classFairMQDevice.html" title=" " alt="" coords="47,5,159,32"/>
|
||||
</map>
|
||||
1
v1.4.33/classFairMQBenchmarkSampler__inherit__graph.md5
Normal file
@@ -0,0 +1 @@
|
||||
d7f1b6afc123e12b0ff903ff556157c7
|
||||
BIN
v1.4.33/classFairMQBenchmarkSampler__inherit__graph.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
155
v1.4.33/classFairMQChannel-members.html
Normal file
@@ -0,0 +1,155 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: Member List</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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="headertitle">
|
||||
<div class="title">FairMQChannel Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="classFairMQChannel.html">FairMQChannel</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bind</b>(const std::string &address) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>BindEndpoint</b>(std::string &endpoint) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Connect</b>(const std::string &address) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>ConnectEndpoint</b>(const std::string &endpoint) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultAddress</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultAutoBind</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultLinger</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultMethod</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultName</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultPortRangeMax</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultPortRangeMin</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultRateLogging</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultRcvBufSize</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultRcvKernelSize</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultSndBufSize</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultSndKernelSize</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultTransportName</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultTransportType</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultType</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#ab681571de3ef6c1021b7981054d152f0">FairMQChannel</a>()</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#acf2763fbdad18f5551ec7a3eb4e09829">FairMQChannel</a>(const std::string &name)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a3223d192c795abb3f357df5883dd67f5">FairMQChannel</a>(const std::string &type, const std::string &method, const std::string &address)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a0c44e61cd9e8153c7a0ed5903d2949c4">FairMQChannel</a>(const std::string &name, const std::string &type, std::shared_ptr< FairMQTransportFactory > factory)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a9c411019f1ee1d0dcc9960ec5b2fde46">FairMQChannel</a>(const std::string &name, const std::string &type, const std::string &method, const std::string &address, std::shared_ptr< FairMQTransportFactory > factory)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FairMQChannel</b>(const std::string &name, int index, const fair::mq::Properties &properties) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a0c6054e77d3152f3436acbfc9c85579a">FairMQChannel</a>(const FairMQChannel &)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a837dbc5a66b93e002f430857c7695efe">FairMQChannel</a>(const FairMQChannel &, const std::string &name)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>FairMQDevice</b> (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a4b68f42e263c0666e6bcc01c2e63c384">GetAddress</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#ae4f8bc56c89538dbd7833f8bd5f2d0d2">GetAutoBind</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetBytesRx</b>() const (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetBytesTx</b>() const (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a8d6933d4d73d8fb9e18cf63800b1d8df">GetIndex</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#afbc97ff72e152db5cb4f0c63f7e00243">GetLinger</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetMessagesRx</b>() const (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetMessagesTx</b>() const (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a314c4760f1c420baed3d379a9da1041d">GetMethod</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a9009e62346f999fbdbd79c82cdf3820c">GetName</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a24199032d2bb90271517e82adfebb45d">GetPortRangeMax</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a2b3d7467e1ee3c5f052efc4ef3ba09d3">GetPortRangeMin</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a5bd5adc3c59f7606e0e868a0f17e28f5">GetPrefix</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#af82cb56741d214bd4db0864e34d9cae3">GetRateLogging</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a7998ca57ca6842f52483103a386189a4">GetRcvBufSize</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a3247b369b02586543c3c4c62b2dd1ab8">GetRcvKernelSize</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#ae597404d6fe4209855e44bda8ee9a298">GetSndBufSize</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#abc48790b56c92e1e7f71bf3a9057b8b4">GetSndKernelSize</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetSocket</b>() const (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a1521eb8016da9ffcb4b159423f8e971d">GetTransportName</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a5f4210c9b05f5b38c2549bf2e65b7c45">GetTransportType</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#ac7b933be2f610691dc24439d0d269383">GetType</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Init</b>() (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#aa5ea97bb9ebfe53796b3e59e18ec2266">Invalidate</a>()</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#ae03deb5cf1ac72f7bcd492e1ebd9b8e7">IsValid</a>() const</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewMessage</b>(Args &&... args) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewSimpleMessage</b>(const T &data) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewStaticMessage</b>(const T &data) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewUnmanagedRegion</b>(Args &&... args) (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a04a9ac897488b2a4a5176b86f5e74483">operator=</a>(const FairMQChannel &)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a1f040835106f6b4fa735ca3d57491f75">Receive</a>(FairMQMessagePtr &msg, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a260e3826ad87f232f978a00a6a3654cc">Receive</a>(std::vector< FairMQMessagePtr > &msgVec, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a0a58c080d525b7e2e57cbb55a49c1c22">Receive</a>(FairMQParts &parts, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a8be266eb34c0aa683674570866a7804d">Send</a>(FairMQMessagePtr &msg, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#af41430efc6cb963f57c861c1019b64f1">Send</a>(std::vector< FairMQMessagePtr > &msgVec, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a190b3a16e9320c6c49e349bca4bf70ef">Send</a>(FairMQParts &parts, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Transport</b>() -> FairMQTransportFactory * (defined in <a class="el" href="classFairMQChannel.html">FairMQChannel</a>)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a015422384ffb47e8b9c667006a2dff60">UpdateAddress</a>(const std::string &address)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#af84f328394d7a2c8ac4252e8aa9c0c69">UpdateAutoBind</a>(const bool autobind)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#ad077c46bafdaba0a7792458b41600571">UpdateLinger</a>(const int duration)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#ac67be0a888fb0ffa61633d28a5c37d18">UpdateMethod</a>(const std::string &method)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a7dd6f31b095b15a4624045ac259563ca">UpdateName</a>(const std::string &name)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a7dc046299bc2a31135cf170f9952a1a2">UpdatePortRangeMax</a>(const int maxPort)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a633ae618067a1b02280fb16cf4117b70">UpdatePortRangeMin</a>(const int minPort)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a2202995e3281a8bc8fdee10c47ff52c4">UpdateRateLogging</a>(const int rateLogging)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#aa0e59f516d68cdf82b8c4f6150624a0e">UpdateRcvBufSize</a>(const int rcvBufSize)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a10e21a697526a8d07cb30e54ce77d675">UpdateRcvKernelSize</a>(const int rcvKernelSize)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a041eafc10c70fa73bceaa10644db3e6c">UpdateSndBufSize</a>(const int sndBufSize)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#ac74bc8cbda6e2f7b50dd8c7b8643b9d5">UpdateSndKernelSize</a>(const int sndKernelSize)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#a9dc3e2a4a3b3f02be98e2b4e5053a258">UpdateTransport</a>(const std::string &transport)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#af9454c7d2ec6950764f3834158379e9b">UpdateType</a>(const std::string &type)</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQChannel.html#ab9a7fdf4097c67e4480d7f8dc5f88f8f">Validate</a>()</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQChannel.html#a9f4ffef546b24680daf6d5f40efc848f">~FairMQChannel</a>()</td><td class="entry"><a class="el" href="classFairMQChannel.html">FairMQChannel</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
1725
v1.4.33/classFairMQChannel.html
Normal file
169
v1.4.33/classFairMQDevice-members.html
Normal file
@@ -0,0 +1,169 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: Member List</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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="headertitle">
|
||||
<div class="title">FairMQDevice Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="classFairMQDevice.html">FairMQDevice</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AddChannel</b>(const std::string &name, FairMQChannel &&channel) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a>(const fair::mq::Transport transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bind</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a>(const std::string &transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Connect</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultId</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultInitTimeout</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultIOThreads</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultMaxRunTime</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultNetworkInterface</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultRate</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultSession</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultTransportName</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultTransportType</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Deserialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>FairMQChannel</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#afb850ea8ff5817c69bdb8aaf9ece69b7">FairMQDevice</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a45356d796b842dd000067ad5cf7a63f5">FairMQDevice</a>(const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a08a86dedb427e05c67802e273fdde7cf">FairMQDevice</a>(fair::mq::ProgOptions &config, const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetChannel</b>(const std::string &channelName, const int index=0) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetDefaultTransport</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetId</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetInitTimeoutInS</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetNetworkInterface</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetNumIoThreads</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetRawCmdLineArgs</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a>(const fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetVersion</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98">InitTask</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewMessage</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewMessageFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewPoller</b>(const Ts &... inputs) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewPoller</b>(const std::vector< FairMQChannel * > &channels) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewSimpleMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewSimpleMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewStaticMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewStaticMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewUnmanagedRegion</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewUnmanagedRegionFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQMessagePtr &msg, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMsgCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQParts &parts, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMultipartCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PrintRegisteredChannels</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a>(FairMQParts &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>RegisterChannelEndpoint</b>(const std::string &channelName, uint16_t minNumSubChannels=1, uint16_t maxNumSubChannels=1) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RegisterChannelEndpoints</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e">Run</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RunStateMachine</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a>(FairMQParts &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>Serialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetDefaultTransport</b>(const std::string &name) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetId</b>(const std::string &id) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetInitTimeoutInS</b>(int initTimeoutInS) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetNetworkInterface</b>(const std::string &networkInterface) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetNumIoThreads</b>(int numIoThreads) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetRawCmdLineArgs</b>(const std::vector< std::string > &args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a>(const std::string &transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a>(const std::string &key, std::function< void(const fair::mq::Transition)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a>(const std::string &key, std::function< void(const fair::mq::State)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TransitionTo</b>(const fair::mq::State state) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>() const -> FairMQTransportFactory *</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a>(std::chrono::duration< Rep, Period > const &duration)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a>(fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a>(const std::string &state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
1139
v1.4.33/classFairMQDevice.html
Normal file
4
v1.4.33/classFairMQDevice__coll__graph.map
Normal file
@@ -0,0 +1,4 @@
|
||||
<map id="FairMQDevice" name="FairMQDevice">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="29,95,141,121"/>
|
||||
<area shape="rect" id="node2" href="$classfair_1_1mq_1_1ProgOptions.html" title=" " alt="" coords="5,5,165,32"/>
|
||||
</map>
|
||||
1
v1.4.33/classFairMQDevice__coll__graph.md5
Normal file
@@ -0,0 +1 @@
|
||||
a1e3a0145e8957ea2bf547106cc17e51
|
||||
BIN
v1.4.33/classFairMQDevice__coll__graph.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
9
v1.4.33/classFairMQDevice__inherit__graph.map
Normal file
@@ -0,0 +1,9 @@
|
||||
<map id="FairMQDevice" name="FairMQDevice">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="5,132,117,159"/>
|
||||
<area shape="rect" id="node2" href="$classFairMQBenchmarkSampler.html" title=" " alt="" coords="165,5,360,32"/>
|
||||
<area shape="rect" id="node3" href="$classFairMQMerger.html" title=" " alt="" coords="206,56,319,83"/>
|
||||
<area shape="rect" id="node4" href="$classFairMQMultiplier.html" title=" " alt="" coords="198,107,327,133"/>
|
||||
<area shape="rect" id="node5" href="$classFairMQProxy.html" title=" " alt="" coords="211,157,315,184"/>
|
||||
<area shape="rect" id="node6" href="$classFairMQSink.html" title=" " alt="" coords="215,208,310,235"/>
|
||||
<area shape="rect" id="node7" href="$classFairMQSplitter.html" title=" " alt="" coords="205,259,320,285"/>
|
||||
</map>
|
||||
1
v1.4.33/classFairMQDevice__inherit__graph.md5
Normal file
@@ -0,0 +1 @@
|
||||
ea8df6087074e7c6e0a80a2ba9b6717e
|
||||
BIN
v1.4.33/classFairMQDevice__inherit__graph.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
173
v1.4.33/classFairMQMerger-members.html
Normal file
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: Member List</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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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="headertitle">
|
||||
<div class="title">FairMQMerger Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="classFairMQMerger.html">FairMQMerger</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AddChannel</b>(const std::string &name, FairMQChannel &&channel) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a>(const fair::mq::Transport transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bind</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a>(const std::string &transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Connect</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultId</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultInitTimeout</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultIOThreads</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultMaxRunTime</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultNetworkInterface</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultRate</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultSession</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DefaultTransportName</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>DefaultTransportType</b> (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Deserialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#afb850ea8ff5817c69bdb8aaf9ece69b7">FairMQDevice</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a45356d796b842dd000067ad5cf7a63f5">FairMQDevice</a>(const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a08a86dedb427e05c67802e273fdde7cf">FairMQDevice</a>(fair::mq::ProgOptions &config, const fair::mq::tools::Version version)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FairMQMerger</b>() (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fInChannelName</b> (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fMultipart</b> (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>fOutChannelName</b> (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a></td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetChannel</b>(const std::string &channelName, const int index=0) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetDefaultTransport</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetId</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetInitTimeoutInS</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetNetworkInterface</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetNumIoThreads</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetRawCmdLineArgs</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a>(const fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a>(const fair::mq::Transition transition)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>GetVersion</b>() const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQMerger.html#a77dc099209a49cec13493e1ec2953411">InitTask</a>() override</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewMessage</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewMessageFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewPoller</b>(const Ts &... inputs) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewPoller</b>(const std::vector< FairMQChannel * > &channels) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewSimpleMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewSimpleMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a>() const</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewStaticMessage</b>(const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewStaticMessageFor</b>(const std::string &channel, int index, const T &data) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewUnmanagedRegion</b>(Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>NewUnmanagedRegionFor</b>(const std::string &channel, int index, Args &&... args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQMessagePtr &msg, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMsgCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnData</b>(const std::string &channelName, bool(T::*memberFunction)(FairMQParts &parts, int index)) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnData</b>(const std::string &channelName, InputMultipartCallback callback) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a>(const FairMQDevice &)=delete</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>PrintRegisteredChannels</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a>(FairMQParts &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RegisterChannelEndpoint</b>(const std::string &channelName, uint16_t minNumSubChannels=1, uint16_t maxNumSubChannels=1) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>RegisterChannelEndpoints</b>() override (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQMerger.html#a7f38f3fe9b3bc3ab9122a40acbc4bdbc">Run</a>() override</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>RunStateMachine</b>() (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a>(FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a>(FairMQParts &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Serialize</b>(FairMQMessage &msg, DataType &&data, Args &&... args) const (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a>(fair::mq::ProgOptions &config)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetDefaultTransport</b>(const std::string &name) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetId</b>(const std::string &id) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetInitTimeoutInS</b>(int initTimeoutInS) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetNetworkInterface</b>(const std::string &networkInterface) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetNumIoThreads</b>(int numIoThreads) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetRawCmdLineArgs</b>(const std::vector< std::string > &args) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a>(const std::string &transport)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a>(const std::string &key, std::function< void(const fair::mq::Transition)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a>(const std::string &key, std::function< void(const fair::mq::State)> callback)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td class="entry"><b>TransitionTo</b>(const fair::mq::State state) (defined in <a class="el" href="classFairMQDevice.html">FairMQDevice</a>)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a>() const -> FairMQTransportFactory *</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a>(const std::string &key)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a>(std::chrono::duration< Rep, Period > const &duration)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a>(fair::mq::State state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a>(const std::string &state)</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a>()</td><td class="entry"><a class="el" href="classFairMQDevice.html">FairMQDevice</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~FairMQMerger</b>() (defined in <a class="el" href="classFairMQMerger.html">FairMQMerger</a>)</td><td class="entry"><a class="el" href="classFairMQMerger.html">FairMQMerger</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
447
v1.4.33/classFairMQMerger.html
Normal file
@@ -0,0 +1,447 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>FairMQ: FairMQMerger 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
|
||||
 <span id="projectnumber">1.4.33</span>
|
||||
</div>
|
||||
<div id="projectbrief">C++ Message Queuing Library and Framework</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.18 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</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="#pro-methods">Protected Member Functions</a> |
|
||||
<a href="#pro-attribs">Protected Attributes</a> |
|
||||
<a href="classFairMQMerger-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">FairMQMerger Class Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p><code>#include <<a class="el" href="FairMQMerger_8h_source.html">FairMQMerger.h</a>></code></p>
|
||||
<div class="dynheader">
|
||||
Inheritance diagram for FairMQMerger:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="classFairMQMerger__inherit__graph.png" border="0" usemap="#FairMQMerger_inherit__map" alt="Inheritance graph"/></div>
|
||||
<map name="FairMQMerger_inherit__map" id="FairMQMerger_inherit__map">
|
||||
<area shape="rect" title=" " alt="" coords="5,80,119,107"/>
|
||||
<area shape="rect" href="classFairMQDevice.html" title=" " alt="" coords="6,5,118,32"/>
|
||||
</map>
|
||||
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
||||
<div class="dynheader">
|
||||
Collaboration diagram for FairMQMerger:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="classFairMQMerger__coll__graph.png" border="0" usemap="#FairMQMerger_coll__map" alt="Collaboration graph"/></div>
|
||||
<map name="FairMQMerger_coll__map" id="FairMQMerger_coll__map">
|
||||
<area shape="rect" title=" " alt="" coords="29,171,142,197"/>
|
||||
<area shape="rect" href="classFairMQDevice.html" title=" " alt="" coords="29,95,141,121"/>
|
||||
<area shape="rect" href="classfair_1_1mq_1_1ProgOptions.html" title=" " alt="" coords="5,5,165,32"/>
|
||||
</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="pro-methods"></a>
|
||||
Protected Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a77dc099209a49cec13493e1ec2953411"><td class="memItemLeft" align="right" valign="top"><a id="a77dc099209a49cec13493e1ec2953411"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQMerger.html#a77dc099209a49cec13493e1ec2953411">InitTask</a> () override</td></tr>
|
||||
<tr class="memdesc:a77dc099209a49cec13493e1ec2953411"><td class="mdescLeft"> </td><td class="mdescRight">Task initialization (can be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a77dc099209a49cec13493e1ec2953411"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9156fbb54f846d5bac6e55349060329b"><td class="memItemLeft" align="right" valign="top"><a id="a9156fbb54f846d5bac6e55349060329b"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>RegisterChannelEndpoints</b> () override</td></tr>
|
||||
<tr class="separator:a9156fbb54f846d5bac6e55349060329b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7f38f3fe9b3bc3ab9122a40acbc4bdbc"><td class="memItemLeft" align="right" valign="top"><a id="a7f38f3fe9b3bc3ab9122a40acbc4bdbc"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQMerger.html#a7f38f3fe9b3bc3ab9122a40acbc4bdbc">Run</a> () override</td></tr>
|
||||
<tr class="memdesc:a7f38f3fe9b3bc3ab9122a40acbc4bdbc"><td class="mdescLeft"> </td><td class="mdescRight">Runs the device (to be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a7f38f3fe9b3bc3ab9122a40acbc4bdbc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pro_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a51db444647edcea2464ca3c59d6bb818"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a51db444647edcea2464ca3c59d6bb818">Init</a> ()</td></tr>
|
||||
<tr class="memdesc:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Additional user initialization (can be overloaded in child classes). Prefer to use <a class="el" href="classFairMQDevice.html#ae4e81b923615502666e5531f532ffc98" title="Task initialization (can be overloaded in child classes)">InitTask()</a>. <br /></td></tr>
|
||||
<tr class="separator:a51db444647edcea2464ca3c59d6bb818 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8716714540007b19024148aedf96bfdc inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a8716714540007b19024148aedf96bfdc"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><b>Bind</b> ()</td></tr>
|
||||
<tr class="separator:a8716714540007b19024148aedf96bfdc inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3eaa3a5b5d11f92073ca863593eb8b6f inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a3eaa3a5b5d11f92073ca863593eb8b6f"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><b>Connect</b> ()</td></tr>
|
||||
<tr class="separator:a3eaa3a5b5d11f92073ca863593eb8b6f inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7578022e18bc2b5b40ba56249cf23719"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7578022e18bc2b5b40ba56249cf23719">PreRun</a> ()</td></tr>
|
||||
<tr class="memdesc:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called in the RUNNING state once before executing the <a class="el" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e" title="Runs the device (to be overloaded in child classes)">Run()</a>/ConditionalRun() method. <br /></td></tr>
|
||||
<tr class="separator:a7578022e18bc2b5b40ba56249cf23719 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad88707048f53c88ef0d6848deb962284"></a>
|
||||
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad88707048f53c88ef0d6848deb962284">ConditionalRun</a> ()</td></tr>
|
||||
<tr class="memdesc:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called during RUNNING state repeatedly until it returns false or device state changes. <br /></td></tr>
|
||||
<tr class="separator:ad88707048f53c88ef0d6848deb962284 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a56d2e72203b11fb4d636e22018456965"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a56d2e72203b11fb4d636e22018456965">PostRun</a> ()</td></tr>
|
||||
<tr class="memdesc:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Called in the RUNNING state once after executing the <a class="el" href="classFairMQDevice.html#a3b90dbcf10552daab760629857e3ba3e" title="Runs the device (to be overloaded in child classes)">Run()</a>/ConditionalRun() method. <br /></td></tr>
|
||||
<tr class="separator:a56d2e72203b11fb4d636e22018456965 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a9ca6f7041dd312096fce7d42ebd3586c"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9ca6f7041dd312096fce7d42ebd3586c">ResetTask</a> ()</td></tr>
|
||||
<tr class="memdesc:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Resets the user task (to be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a9ca6f7041dd312096fce7d42ebd3586c inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2a1a3157b7cb40ddc299b8865f3ef305"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a2a1a3157b7cb40ddc299b8865f3ef305">Reset</a> ()</td></tr>
|
||||
<tr class="memdesc:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Resets the device (can be overloaded in child classes) <br /></td></tr>
|
||||
<tr class="separator:a2a1a3157b7cb40ddc299b8865f3ef305 inherit pro_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
||||
Protected Attributes</h2></td></tr>
|
||||
<tr class="memitem:a8d3c9f33940285e1362fd44f718c8469"><td class="memItemLeft" align="right" valign="top"><a id="a8d3c9f33940285e1362fd44f718c8469"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><b>fMultipart</b></td></tr>
|
||||
<tr class="separator:a8d3c9f33940285e1362fd44f718c8469"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa846ecd334c461292dda96359e22161a"><td class="memItemLeft" align="right" valign="top"><a id="aa846ecd334c461292dda96359e22161a"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>fInChannelName</b></td></tr>
|
||||
<tr class="separator:aa846ecd334c461292dda96359e22161a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6ee22c507f2e741bfaf5c17f0e2b8c55"><td class="memItemLeft" align="right" valign="top"><a id="a6ee22c507f2e741bfaf5c17f0e2b8c55"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>fOutChannelName</b></td></tr>
|
||||
<tr class="separator:a6ee22c507f2e741bfaf5c17f0e2b8c55"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pro_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a1c67c4cbd6140f35292b13e485f39ce0"></a>
|
||||
std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a1c67c4cbd6140f35292b13e485f39ce0">fTransportFactory</a></td></tr>
|
||||
<tr class="memdesc:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default transport factory. <br /></td></tr>
|
||||
<tr class="separator:a1c67c4cbd6140f35292b13e485f39ce0 inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a02d4d28747aa58c9b67915e79520cc7b"></a>
|
||||
std::unordered_map< fair::mq::Transport, std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a02d4d28747aa58c9b67915e79520cc7b">fTransports</a></td></tr>
|
||||
<tr class="memdesc:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Container for transports. <br /></td></tr>
|
||||
<tr class="separator:a02d4d28747aa58c9b67915e79520cc7b inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a13141f54111f5f724b79143b4303a32f"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a13141f54111f5f724b79143b4303a32f">fId</a></td></tr>
|
||||
<tr class="memdesc:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Device ID. <br /></td></tr>
|
||||
<tr class="separator:a13141f54111f5f724b79143b4303a32f inherit pro_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
||||
Additional Inherited Members</h2></td></tr>
|
||||
<tr class="inherit_header pub_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a735b2684d4678eb959302911f12223eb"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a735b2684d4678eb959302911f12223eb">FairMQDevice</a> ()</td></tr>
|
||||
<tr class="memdesc:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br /></td></tr>
|
||||
<tr class="separator:a735b2684d4678eb959302911f12223eb inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="afb850ea8ff5817c69bdb8aaf9ece69b7"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#afb850ea8ff5817c69bdb8aaf9ece69b7">FairMQDevice</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config)</td></tr>
|
||||
<tr class="memdesc:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor with external <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>. <br /></td></tr>
|
||||
<tr class="separator:afb850ea8ff5817c69bdb8aaf9ece69b7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a45356d796b842dd000067ad5cf7a63f5"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a45356d796b842dd000067ad5cf7a63f5">FairMQDevice</a> (const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version)</td></tr>
|
||||
<tr class="memdesc:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that sets the version. <br /></td></tr>
|
||||
<tr class="separator:a45356d796b842dd000067ad5cf7a63f5 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a08a86dedb427e05c67802e273fdde7cf"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a08a86dedb427e05c67802e273fdde7cf">FairMQDevice</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config, const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> version)</td></tr>
|
||||
<tr class="memdesc:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that sets the version and external <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a>. <br /></td></tr>
|
||||
<tr class="separator:a08a86dedb427e05c67802e273fdde7cf inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a806cf5c241bf95571654cd327d6e76fe"></a>
|
||||
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a806cf5c241bf95571654cd327d6e76fe">FairMQDevice</a> (const <a class="el" href="classFairMQDevice.html">FairMQDevice</a> &)=delete</td></tr>
|
||||
<tr class="memdesc:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor (disabled) <br /></td></tr>
|
||||
<tr class="separator:a806cf5c241bf95571654cd327d6e76fe inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa4e0098922aaf987c2a27c10f4e04fbd"></a>
|
||||
<a class="el" href="classFairMQDevice.html">FairMQDevice</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aa4e0098922aaf987c2a27c10f4e04fbd">operator=</a> (const <a class="el" href="classFairMQDevice.html">FairMQDevice</a> &)=delete</td></tr>
|
||||
<tr class="memdesc:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator (disabled) <br /></td></tr>
|
||||
<tr class="separator:aa4e0098922aaf987c2a27c10f4e04fbd inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a09389ba6934645ca406a963ab5a60e1a"></a>
|
||||
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a09389ba6934645ca406a963ab5a60e1a">~FairMQDevice</a> ()</td></tr>
|
||||
<tr class="memdesc:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Default destructor. <br /></td></tr>
|
||||
<tr class="separator:a09389ba6934645ca406a963ab5a60e1a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a93c839b68f007bef8e66115efeed9d41"></a>
|
||||
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a93c839b68f007bef8e66115efeed9d41">LogSocketRates</a> ()</td></tr>
|
||||
<tr class="memdesc:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Outputs the socket transfer rates. <br /></td></tr>
|
||||
<tr class="separator:a93c839b68f007bef8e66115efeed9d41 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a00ba7ec2625e0ce7d1bca9b602920d5b"></a>
|
||||
template<typename Serializer , typename DataType , typename... Args> </td></tr>
|
||||
<tr class="memitem:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>Serialize</b> (<a class="el" href="classFairMQMessage.html">FairMQMessage</a> &msg, DataType &&data, Args &&... args) const</td></tr>
|
||||
<tr class="separator:a00ba7ec2625e0ce7d1bca9b602920d5b inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a262cb8fbbf7d828a4c076779e7566fed"></a>
|
||||
template<typename Deserializer , typename DataType , typename... Args> </td></tr>
|
||||
<tr class="memitem:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>Deserialize</b> (<a class="el" href="classFairMQMessage.html">FairMQMessage</a> &msg, DataType &&data, Args &&... args) const</td></tr>
|
||||
<tr class="separator:a262cb8fbbf7d828a4c076779e7566fed inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9458e96239d625186c7e5f9163ae7e2 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ac9458e96239d625186c7e5f9163ae7e2">Send</a> (FairMQMessagePtr &msg, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:ac9458e96239d625186c7e5f9163ae7e2 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a363cf1b520148d9864fa800b4341b77f inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a363cf1b520148d9864fa800b4341b77f">Receive</a> (FairMQMessagePtr &msg, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a363cf1b520148d9864fa800b4341b77f inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2ff45ca40adf8ad8e046651f14a63f55 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a2ff45ca40adf8ad8e046651f14a63f55">Send</a> (<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, const std::string &channel, const int index=0, int sndTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a2ff45ca40adf8ad8e046651f14a63f55 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9b4c9df42a95d0e428106244a9ae5c54 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9b4c9df42a95d0e428106244a9ae5c54">Receive</a> (<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, const std::string &channel, const int index=0, int rcvTimeoutInMs=-1)</td></tr>
|
||||
<tr class="separator:a9b4c9df42a95d0e428106244a9ae5c54 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aab6d9bd4d57360a2b85ee3dec980395c"></a>
|
||||
auto </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aab6d9bd4d57360a2b85ee3dec980395c">Transport</a> () const -> <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> *</td></tr>
|
||||
<tr class="memdesc:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Getter for default transport factory. <br /></td></tr>
|
||||
<tr class="separator:aab6d9bd4d57360a2b85ee3dec980395c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a76166a3408962d3f57ebfa966aec65a7"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewMessage</b> (Args &&... args)</td></tr>
|
||||
<tr class="separator:a76166a3408962d3f57ebfa966aec65a7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a836d37a65d5ecce1779b63c75379652c"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewMessageFor</b> (const std::string &channel, int index, Args &&... args)</td></tr>
|
||||
<tr class="separator:a836d37a65d5ecce1779b63c75379652c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a2543793c031c94a2db5142cd51fae31d"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewStaticMessage</b> (const T &data)</td></tr>
|
||||
<tr class="separator:a2543793c031c94a2db5142cd51fae31d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="abbcd4ce9e3700863e28f07d80cbb1985"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewStaticMessageFor</b> (const std::string &channel, int index, const T &data)</td></tr>
|
||||
<tr class="separator:abbcd4ce9e3700863e28f07d80cbb1985 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a82bb4426f1e314cc719ed282f6bf7548"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessage</b> (const T &data)</td></tr>
|
||||
<tr class="separator:a82bb4426f1e314cc719ed282f6bf7548 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="abf88eece03b79f9f6d9cec0f12913baa"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQMessagePtr </td><td class="memTemplItemRight" valign="bottom"><b>NewSimpleMessageFor</b> (const std::string &channel, int index, const T &data)</td></tr>
|
||||
<tr class="separator:abf88eece03b79f9f6d9cec0f12913baa inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a806c0e860c59909e5a2b946c53c73c89"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQUnmanagedRegionPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewUnmanagedRegion</b> (Args &&... args)</td></tr>
|
||||
<tr class="separator:a806c0e860c59909e5a2b946c53c73c89 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a468151007d5f7d430ae94cfdce6e7882"></a>
|
||||
template<typename... Args> </td></tr>
|
||||
<tr class="memitem:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQUnmanagedRegionPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewUnmanagedRegionFor</b> (const std::string &channel, int index, Args &&... args)</td></tr>
|
||||
<tr class="separator:a468151007d5f7d430ae94cfdce6e7882 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a5d2e8221d94f404d18a73b6d06126e2a"></a>
|
||||
template<typename ... Ts> </td></tr>
|
||||
<tr class="memitem:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">FairMQPollerPtr </td><td class="memTemplItemRight" valign="bottom"><b>NewPoller</b> (const Ts &... inputs)</td></tr>
|
||||
<tr class="separator:a5d2e8221d94f404d18a73b6d06126e2a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a89b5fb7dad976206939ff1175a6899ea inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a89b5fb7dad976206939ff1175a6899ea"></a>
|
||||
FairMQPollerPtr </td><td class="memItemRight" valign="bottom"><b>NewPoller</b> (const std::vector< <a class="el" href="classFairMQChannel.html">FairMQChannel</a> * > &channels)</td></tr>
|
||||
<tr class="separator:a89b5fb7dad976206939ff1175a6899ea inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9bddc6f64f9c89b8ffe3670d91c06b29 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">std::shared_ptr< <a class="el" href="classFairMQTransportFactory.html">FairMQTransportFactory</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a9bddc6f64f9c89b8ffe3670d91c06b29">AddTransport</a> (const fair::mq::Transport transport)</td></tr>
|
||||
<tr class="separator:a9bddc6f64f9c89b8ffe3670d91c06b29 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa272062ccaff78a61d78ddfbefa25dec"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aa272062ccaff78a61d78ddfbefa25dec">SetConfig</a> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> &config)</td></tr>
|
||||
<tr class="memdesc:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Assigns config to the device. <br /></td></tr>
|
||||
<tr class="separator:aa272062ccaff78a61d78ddfbefa25dec inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="acb7448dc5d278c6f51e3fcf7a49f367e"></a>
|
||||
<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#acb7448dc5d278c6f51e3fcf7a49f367e">GetConfig</a> () const</td></tr>
|
||||
<tr class="memdesc:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the config. <br /></td></tr>
|
||||
<tr class="separator:acb7448dc5d278c6f51e3fcf7a49f367e inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a27655622eac0524d86737aba269651d4"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, bool(T::*memberFunction)(FairMQMessagePtr &msg, int index))</td></tr>
|
||||
<tr class="separator:a27655622eac0524d86737aba269651d4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a719e0eece74b60c3459b265b1d8db1e1 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a719e0eece74b60c3459b265b1d8db1e1"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, InputMsgCallback callback)</td></tr>
|
||||
<tr class="separator:a719e0eece74b60c3459b265b1d8db1e1 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2"><a id="a4abc9d4a453670012fc317fe534e875b"></a>
|
||||
template<typename T > </td></tr>
|
||||
<tr class="memitem:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, bool(T::*memberFunction)(<a class="el" href="classFairMQParts.html">FairMQParts</a> &parts, int index))</td></tr>
|
||||
<tr class="separator:a4abc9d4a453670012fc317fe534e875b inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0b136382dd08310521501ff4ab6de884 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a0b136382dd08310521501ff4ab6de884"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>OnData</b> (const std::string &channelName, InputMultipartCallback callback)</td></tr>
|
||||
<tr class="separator:a0b136382dd08310521501ff4ab6de884 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a929c915505060a09885093b1a894c358 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a929c915505060a09885093b1a894c358"></a>
|
||||
<a class="el" href="classFairMQChannel.html">FairMQChannel</a> & </td><td class="memItemRight" valign="bottom"><b>GetChannel</b> (const std::string &channelName, const int index=0)</td></tr>
|
||||
<tr class="separator:a929c915505060a09885093b1a894c358 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a25c5f3615712f0e4e3aa2667c96be286 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a25c5f3615712f0e4e3aa2667c96be286"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><b>RegisterChannelEndpoint</b> (const std::string &channelName, uint16_t minNumSubChannels=1, uint16_t maxNumSubChannels=1)</td></tr>
|
||||
<tr class="separator:a25c5f3615712f0e4e3aa2667c96be286 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0f2eba92316c226ff1daebd5d8de25c4 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a0f2eba92316c226ff1daebd5d8de25c4"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>PrintRegisteredChannels</b> ()</td></tr>
|
||||
<tr class="separator:a0f2eba92316c226ff1daebd5d8de25c4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a12a348be5f441e0527aae654f9859a89 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a12a348be5f441e0527aae654f9859a89"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetId</b> (const std::string &id)</td></tr>
|
||||
<tr class="separator:a12a348be5f441e0527aae654f9859a89 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4385f446208320a17c22bcbf663c6173 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a4385f446208320a17c22bcbf663c6173"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetId</b> ()</td></tr>
|
||||
<tr class="separator:a4385f446208320a17c22bcbf663c6173 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab0ad1bbc9ab4452d57460c5ceffa8f47 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ab0ad1bbc9ab4452d57460c5ceffa8f47"></a>
|
||||
const <a class="el" href="structfair_1_1mq_1_1tools_1_1Version.html">fair::mq::tools::Version</a> </td><td class="memItemRight" valign="bottom"><b>GetVersion</b> () const</td></tr>
|
||||
<tr class="separator:ab0ad1bbc9ab4452d57460c5ceffa8f47 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8a64447bc7fa3ca55c6ff004a3d8c2f8 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a8a64447bc7fa3ca55c6ff004a3d8c2f8"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetNumIoThreads</b> (int numIoThreads)</td></tr>
|
||||
<tr class="separator:a8a64447bc7fa3ca55c6ff004a3d8c2f8 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a23428fcb596e66ca3e7d3ca2776bd890 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a23428fcb596e66ca3e7d3ca2776bd890"></a>
|
||||
int </td><td class="memItemRight" valign="bottom"><b>GetNumIoThreads</b> () const</td></tr>
|
||||
<tr class="separator:a23428fcb596e66ca3e7d3ca2776bd890 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abad4a2ad5a139ebaf2f851bd5d037734 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="abad4a2ad5a139ebaf2f851bd5d037734"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetNetworkInterface</b> (const std::string &networkInterface)</td></tr>
|
||||
<tr class="separator:abad4a2ad5a139ebaf2f851bd5d037734 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1cbde24481b77946f5b1972e52de5aba inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a1cbde24481b77946f5b1972e52de5aba"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetNetworkInterface</b> () const</td></tr>
|
||||
<tr class="separator:a1cbde24481b77946f5b1972e52de5aba inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad931f34f50461f4bc85d4e7697d9562e inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad931f34f50461f4bc85d4e7697d9562e"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetDefaultTransport</b> (const std::string &name)</td></tr>
|
||||
<tr class="separator:ad931f34f50461f4bc85d4e7697d9562e inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec098ab7833ecf3eaeec6f8aa6aed724 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aec098ab7833ecf3eaeec6f8aa6aed724"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><b>GetDefaultTransport</b> () const</td></tr>
|
||||
<tr class="separator:aec098ab7833ecf3eaeec6f8aa6aed724 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a74dd6b1a4ee8371afb1126c68bc3fb9d inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a74dd6b1a4ee8371afb1126c68bc3fb9d"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetInitTimeoutInS</b> (int initTimeoutInS)</td></tr>
|
||||
<tr class="separator:a74dd6b1a4ee8371afb1126c68bc3fb9d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a80897eabf43ff737314e612edc84558c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a80897eabf43ff737314e612edc84558c"></a>
|
||||
int </td><td class="memItemRight" valign="bottom"><b>GetInitTimeoutInS</b> () const</td></tr>
|
||||
<tr class="separator:a80897eabf43ff737314e612edc84558c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a72517f8d1edab9b879d573fb09e8b5cf inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a72517f8d1edab9b879d573fb09e8b5cf">SetTransport</a> (const std::string &transport)</td></tr>
|
||||
<tr class="separator:a72517f8d1edab9b879d573fb09e8b5cf inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ae3e16932f18d4966d51c906f1fe99d4a"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ae3e16932f18d4966d51c906f1fe99d4a">GetTransportName</a> () const</td></tr>
|
||||
<tr class="memdesc:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Gets the default transport name. <br /></td></tr>
|
||||
<tr class="separator:ae3e16932f18d4966d51c906f1fe99d4a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2d674c1794f63a6721913fa964d89908 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2d674c1794f63a6721913fa964d89908"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>SetRawCmdLineArgs</b> (const std::vector< std::string > &args)</td></tr>
|
||||
<tr class="separator:a2d674c1794f63a6721913fa964d89908 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a277a1096321320d4d54a7e2c7e65e31a inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a277a1096321320d4d54a7e2c7e65e31a"></a>
|
||||
std::vector< std::string > </td><td class="memItemRight" valign="bottom"><b>GetRawCmdLineArgs</b> () const</td></tr>
|
||||
<tr class="separator:a277a1096321320d4d54a7e2c7e65e31a inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a37c599287a50f4691fe6cd3488c9cd28 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a37c599287a50f4691fe6cd3488c9cd28"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>RunStateMachine</b> ()</td></tr>
|
||||
<tr class="separator:a37c599287a50f4691fe6cd3488c9cd28 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memTemplParams" colspan="2">template<typename Rep , typename Period > </td></tr>
|
||||
<tr class="memitem:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ab2e07c7f823cbd0ea76ea6d1b7fdd1d4">WaitFor</a> (std::chrono::duration< Rep, Period > const &duration)</td></tr>
|
||||
<tr class="separator:ab2e07c7f823cbd0ea76ea6d1b7fdd1d4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a81348221f634f43f5ee94782fcb6f3e7 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a81348221f634f43f5ee94782fcb6f3e7"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>AddChannel</b> (const std::string &name, <a class="el" href="classFairMQChannel.html">FairMQChannel</a> &&channel)</td></tr>
|
||||
<tr class="separator:a81348221f634f43f5ee94782fcb6f3e7 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">ChangeState</a> (const fair::mq::Transition transition)</td></tr>
|
||||
<tr class="memdesc:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Request a device state transition. <a href="classFairMQDevice.html#ad35b073f8fa62d4559a1efbf38d5ded5">More...</a><br /></td></tr>
|
||||
<tr class="separator:ad35b073f8fa62d4559a1efbf38d5ded5 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">ChangeState</a> (const std::string &transition)</td></tr>
|
||||
<tr class="memdesc:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Request a device state transition. <a href="classFairMQDevice.html#a0f7f383786cd37df5bdd5769ac6521ea">More...</a><br /></td></tr>
|
||||
<tr class="separator:a0f7f383786cd37df5bdd5769ac6521ea inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7b64f14a98d56fc575d13f7da0ad0a4d"></a>
|
||||
fair::mq::State </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7b64f14a98d56fc575d13f7da0ad0a4d">WaitForNextState</a> ()</td></tr>
|
||||
<tr class="memdesc:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the next state (any) to occur <br /></td></tr>
|
||||
<tr class="separator:a7b64f14a98d56fc575d13f7da0ad0a4d inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">WaitForState</a> (fair::mq::State state)</td></tr>
|
||||
<tr class="memdesc:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the specified state to occur <a href="classFairMQDevice.html#a40ef078cf464d17af1e8faeb69c61206">More...</a><br /></td></tr>
|
||||
<tr class="separator:a40ef078cf464d17af1e8faeb69c61206 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">WaitForState</a> (const std::string &state)</td></tr>
|
||||
<tr class="memdesc:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">waits for the specified state to occur <a href="classFairMQDevice.html#a5b28e672fc4bdd82513fff138ff672d9">More...</a><br /></td></tr>
|
||||
<tr class="separator:a5b28e672fc4bdd82513fff138ff672d9 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a916c44294188084712c333182e7cce57 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a916c44294188084712c333182e7cce57"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><b>TransitionTo</b> (const fair::mq::State state)</td></tr>
|
||||
<tr class="separator:a916c44294188084712c333182e7cce57 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">SubscribeToStateChange</a> (const std::string &key, std::function< void(const fair::mq::State)> callback)</td></tr>
|
||||
<tr class="memdesc:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Subscribe with a callback to state changes. <a href="classFairMQDevice.html#ae3c2c8524082bf37eafaa26030ee7452">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae3c2c8524082bf37eafaa26030ee7452 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">UnsubscribeFromStateChange</a> (const std::string &key)</td></tr>
|
||||
<tr class="memdesc:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Unsubscribe from state changes. <a href="classFairMQDevice.html#af9b5b7a5469bff53feb6a1e000230e73">More...</a><br /></td></tr>
|
||||
<tr class="separator:af9b5b7a5469bff53feb6a1e000230e73 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">SubscribeToNewTransition</a> (const std::string &key, std::function< void(const fair::mq::Transition)> callback)</td></tr>
|
||||
<tr class="memdesc:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Subscribe with a callback to incoming state transitions. <a href="classFairMQDevice.html#aff6cf5db6dfc546431fc76548b8c09c4">More...</a><br /></td></tr>
|
||||
<tr class="separator:aff6cf5db6dfc546431fc76548b8c09c4 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">UnsubscribeFromNewTransition</a> (const std::string &key)</td></tr>
|
||||
<tr class="memdesc:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Unsubscribe from state transitions. <a href="classFairMQDevice.html#aaa9562c293ae1522975f171dfee00d69">More...</a><br /></td></tr>
|
||||
<tr class="separator:aaa9562c293ae1522975f171dfee00d69 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ac6e41280dd6cc8b217944a97fd9c548c"></a>
|
||||
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ac6e41280dd6cc8b217944a97fd9c548c">NewStatePending</a> () const</td></tr>
|
||||
<tr class="memdesc:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if a new state has been requested, signaling the current handler to stop. <br /></td></tr>
|
||||
<tr class="separator:ac6e41280dd6cc8b217944a97fd9c548c inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a7ba52b2fc3908c6bf1391eb5f27b03bd"></a>
|
||||
fair::mq::State </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a7ba52b2fc3908c6bf1391eb5f27b03bd">GetCurrentState</a> () const</td></tr>
|
||||
<tr class="memdesc:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns the current state. <br /></td></tr>
|
||||
<tr class="separator:a7ba52b2fc3908c6bf1391eb5f27b03bd inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad1b949fc86f1028a1421972d43b37df9"></a>
|
||||
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad1b949fc86f1028a1421972d43b37df9">GetCurrentStateName</a> () const</td></tr>
|
||||
<tr class="memdesc:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns the name of the current state as a string. <br /></td></tr>
|
||||
<tr class="separator:ad1b949fc86f1028a1421972d43b37df9 inherit pub_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_static_methods_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classFairMQDevice')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">GetStateName</a> (const fair::mq::State state)</td></tr>
|
||||
<tr class="memdesc:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns name of the given state as a string. <a href="classFairMQDevice.html#af13f02da4e38ec68e23b7fab6677540a">More...</a><br /></td></tr>
|
||||
<tr class="separator:af13f02da4e38ec68e23b7fab6677540a inherit pub_static_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="memItemLeft" align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">GetTransitionName</a> (const fair::mq::Transition transition)</td></tr>
|
||||
<tr class="memdesc:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Returns name of the given transition as a string. <a href="classFairMQDevice.html#afeaaeb9cb5ce8e0ac617600af8cfee52">More...</a><br /></td></tr>
|
||||
<tr class="separator:afeaaeb9cb5ce8e0ac617600af8cfee52 inherit pub_static_methods_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ad6e090504ceef5799b6f85b136d1e547"></a>
|
||||
std::unordered_map< std::string, std::vector< <a class="el" href="classFairMQChannel.html">FairMQChannel</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#ad6e090504ceef5799b6f85b136d1e547">fChannels</a></td></tr>
|
||||
<tr class="memdesc:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Device channels. <br /></td></tr>
|
||||
<tr class="separator:ad6e090504ceef5799b6f85b136d1e547 inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a597c3c39cb45accfcf28e44071e4baff"></a>
|
||||
std::unique_ptr< <a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a597c3c39cb45accfcf28e44071e4baff">fInternalConfig</a></td></tr>
|
||||
<tr class="memdesc:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Internal program options configuration. <br /></td></tr>
|
||||
<tr class="separator:a597c3c39cb45accfcf28e44071e4baff inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a3496403c6124440185111ba3b49fb80d"></a>
|
||||
<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">fair::mq::ProgOptions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFairMQDevice.html#a3496403c6124440185111ba3b49fb80d">fConfig</a></td></tr>
|
||||
<tr class="memdesc:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="mdescLeft"> </td><td class="mdescRight">Pointer to config (internal or external) <br /></td></tr>
|
||||
<tr class="separator:a3496403c6124440185111ba3b49fb80d inherit pub_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="inherit_header pub_static_attribs_classFairMQDevice"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classFairMQDevice')"><img src="closed.png" alt="-"/> Static Public Attributes inherited from <a class="el" href="classFairMQDevice.html">FairMQDevice</a></td></tr>
|
||||
<tr class="memitem:a5b207943e3276401338e9a3a54dc2403 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a5b207943e3276401338e9a3a54dc2403"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultId</b> = ""</td></tr>
|
||||
<tr class="separator:a5b207943e3276401338e9a3a54dc2403 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2d06052069ad94a9a1dbdfda0fbd9874 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a2d06052069ad94a9a1dbdfda0fbd9874"></a>
|
||||
static constexpr int </td><td class="memItemRight" valign="bottom"><b>DefaultIOThreads</b> = 1</td></tr>
|
||||
<tr class="separator:a2d06052069ad94a9a1dbdfda0fbd9874 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a484eef27bd4a618bb157ce1e078b428f inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a484eef27bd4a618bb157ce1e078b428f"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultTransportName</b> = "zeromq"</td></tr>
|
||||
<tr class="separator:a484eef27bd4a618bb157ce1e078b428f inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af4602a67ba7255e1cdfbee223bd3faee inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="af4602a67ba7255e1cdfbee223bd3faee"></a>
|
||||
static constexpr fair::mq::Transport </td><td class="memItemRight" valign="bottom"><b>DefaultTransportType</b> = fair::mq::Transport::ZMQ</td></tr>
|
||||
<tr class="separator:af4602a67ba7255e1cdfbee223bd3faee inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aebeeb3468b8f3c6531b44b15e1069ee5 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aebeeb3468b8f3c6531b44b15e1069ee5"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultNetworkInterface</b> = "default"</td></tr>
|
||||
<tr class="separator:aebeeb3468b8f3c6531b44b15e1069ee5 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ada5af08bd8533ec62efdd2e1e6b53b13 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ada5af08bd8533ec62efdd2e1e6b53b13"></a>
|
||||
static constexpr int </td><td class="memItemRight" valign="bottom"><b>DefaultInitTimeout</b> = 120</td></tr>
|
||||
<tr class="separator:ada5af08bd8533ec62efdd2e1e6b53b13 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a92eab91e99eea4f4cbfd095e536e3455 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="a92eab91e99eea4f4cbfd095e536e3455"></a>
|
||||
static constexpr uint64_t </td><td class="memItemRight" valign="bottom"><b>DefaultMaxRunTime</b> = 0</td></tr>
|
||||
<tr class="separator:a92eab91e99eea4f4cbfd095e536e3455 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac2c8dd974b57c3729a706e38bc684fc5 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="ac2c8dd974b57c3729a706e38bc684fc5"></a>
|
||||
static constexpr float </td><td class="memItemRight" valign="bottom"><b>DefaultRate</b> = 0.</td></tr>
|
||||
<tr class="separator:ac2c8dd974b57c3729a706e38bc684fc5 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa3eaa8ef93c5758e16409f01ccbd3671 inherit pub_static_attribs_classFairMQDevice"><td class="memItemLeft" align="right" valign="top"><a id="aa3eaa8ef93c5758e16409f01ccbd3671"></a>
|
||||
static constexpr const char * </td><td class="memItemRight" valign="bottom"><b>DefaultSession</b> = "default"</td></tr>
|
||||
<tr class="separator:aa3eaa8ef93c5758e16409f01ccbd3671 inherit pub_static_attribs_classFairMQDevice"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p><a class="el" href="FairMQMerger_8h_source.html">FairMQMerger.h</a></p>
|
||||
<dl class="section since"><dt>Since</dt><dd>2012-12-06 </dd></dl>
|
||||
<dl class="section author"><dt>Author</dt><dd>D. Klein, A. Rybalchenko </dd></dl>
|
||||
</div><hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>fairmq/devices/<a class="el" href="FairMQMerger_8h_source.html">FairMQMerger.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>
|
||||
5
v1.4.33/classFairMQMerger__coll__graph.map
Normal file
@@ -0,0 +1,5 @@
|
||||
<map id="FairMQMerger" name="FairMQMerger">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="29,171,142,197"/>
|
||||
<area shape="rect" id="node2" href="$classFairMQDevice.html" title=" " alt="" coords="29,95,141,121"/>
|
||||
<area shape="rect" id="node3" href="$classfair_1_1mq_1_1ProgOptions.html" title=" " alt="" coords="5,5,165,32"/>
|
||||
</map>
|
||||
1
v1.4.33/classFairMQMerger__coll__graph.md5
Normal file
@@ -0,0 +1 @@
|
||||
0338822234ee37687ee03aa414cfbbff
|
||||
BIN
v1.4.33/classFairMQMerger__coll__graph.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
4
v1.4.33/classFairMQMerger__inherit__graph.map
Normal file
@@ -0,0 +1,4 @@
|
||||
<map id="FairMQMerger" name="FairMQMerger">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="5,80,119,107"/>
|
||||
<area shape="rect" id="node2" href="$classFairMQDevice.html" title=" " alt="" coords="6,5,118,32"/>
|
||||
</map>
|
||||