FairMQ/v1.4.33/classfair_1_1mq_1_1PluginServices.html
2021-03-23 14:11:44 +01:00

1407 lines
72 KiB
HTML

<!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: fair::mq::PluginServices Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">FairMQ
&#160;<span id="projectnumber">1.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&amp;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&amp;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"><b>fair</b></li><li class="navelem"><a class="el" href="namespacefair_1_1mq.html">mq</a></li><li class="navelem"><a class="el" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classfair_1_1mq_1_1PluginServices-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">fair::mq::PluginServices Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Facilitates communication between devices and plugins.
<a href="classfair_1_1mq_1_1PluginServices.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PluginServices_8h_source.html">fairmq/PluginServices.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfair_1_1mq_1_1PluginServices_1_1DeviceControlError.html">DeviceControlError</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a13b7b55b4b4e7d0b7054233e178976da"><td class="memItemLeft" align="right" valign="top"><a id="a13b7b55b4b4e7d0b7054233e178976da"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>DeviceState</b> = fair::mq::State</td></tr>
<tr class="separator:a13b7b55b4b4e7d0b7054233e178976da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af541edfc7ef784be9f013e8f483c58d3"><td class="memItemLeft" align="right" valign="top"><a id="af541edfc7ef784be9f013e8f483c58d3"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>DeviceStateTransition</b> = fair::mq::Transition</td></tr>
<tr class="separator:af541edfc7ef784be9f013e8f483c58d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:ab9491e03ab59a68bfb2b231bd3ce849a"><td class="memItemLeft" align="right" valign="top"><a id="ab9491e03ab59a68bfb2b231bd3ce849a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>PluginServices</b> (<a class="el" href="classfair_1_1mq_1_1ProgOptions.html">ProgOptions</a> &amp;config, <a class="el" href="classFairMQDevice.html">FairMQDevice</a> &amp;device)</td></tr>
<tr class="separator:ab9491e03ab59a68bfb2b231bd3ce849a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a538b3170e425a0ec9e5c7161d4cb26fb"><td class="memItemLeft" align="right" valign="top"><a id="a538b3170e425a0ec9e5c7161d4cb26fb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>PluginServices</b> (const <a class="el" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a> &amp;)=delete</td></tr>
<tr class="separator:a538b3170e425a0ec9e5c7161d4cb26fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7083ca1dcc52012d3f5da5d63700f5d"><td class="memItemLeft" align="right" valign="top"><a id="af7083ca1dcc52012d3f5da5d63700f5d"></a>
<a class="el" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classfair_1_1mq_1_1PluginServices.html">PluginServices</a> &amp;)=delete</td></tr>
<tr class="separator:af7083ca1dcc52012d3f5da5d63700f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac93964a0e35ca0ed91bfbaab6405be82"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ac93964a0e35ca0ed91bfbaab6405be82">GetCurrentDeviceState</a> () const -&gt; DeviceState</td></tr>
<tr class="separator:ac93964a0e35ca0ed91bfbaab6405be82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2bab89d575dd90828d492cf2d0d2f5e"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">TakeDeviceControl</a> (const std::string &amp;controller) -&gt; void</td></tr>
<tr class="memdesc:ab2bab89d575dd90828d492cf2d0d2f5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Become device controller. <a href="classfair_1_1mq_1_1PluginServices.html#ab2bab89d575dd90828d492cf2d0d2f5e">More...</a><br /></td></tr>
<tr class="separator:ab2bab89d575dd90828d492cf2d0d2f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546360c16172c5d3c83f483871fa0c7e"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">StealDeviceControl</a> (const std::string &amp;controller) -&gt; void</td></tr>
<tr class="memdesc:a546360c16172c5d3c83f483871fa0c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Become device controller by force. <a href="classfair_1_1mq_1_1PluginServices.html#a546360c16172c5d3c83f483871fa0c7e">More...</a><br /></td></tr>
<tr class="separator:a546360c16172c5d3c83f483871fa0c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7127f156ba970298a23b8b67550a43b"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">ReleaseDeviceControl</a> (const std::string &amp;controller) -&gt; void</td></tr>
<tr class="memdesc:af7127f156ba970298a23b8b67550a43b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release device controller role. <a href="classfair_1_1mq_1_1PluginServices.html#af7127f156ba970298a23b8b67550a43b">More...</a><br /></td></tr>
<tr class="separator:af7127f156ba970298a23b8b67550a43b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba93554ad3553a1d14d1affd85e1dea1"><td class="memItemLeft" align="right" valign="top"><a id="aba93554ad3553a1d14d1affd85e1dea1"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#aba93554ad3553a1d14d1affd85e1dea1">GetDeviceController</a> () const -&gt; boost::optional&lt; std::string &gt;</td></tr>
<tr class="memdesc:aba93554ad3553a1d14d1affd85e1dea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current device controller. <br /></td></tr>
<tr class="separator:aba93554ad3553a1d14d1affd85e1dea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79645639828ffaebcb81e29dc49ca6a4"><td class="memItemLeft" align="right" valign="top"><a id="a79645639828ffaebcb81e29dc49ca6a4"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a79645639828ffaebcb81e29dc49ca6a4">WaitForReleaseDeviceControl</a> () -&gt; void</td></tr>
<tr class="memdesc:a79645639828ffaebcb81e29dc49ca6a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block until control is released. <br /></td></tr>
<tr class="separator:a79645639828ffaebcb81e29dc49ca6a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb2b7857434e48018dfe6b17044dcef9"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">ChangeDeviceState</a> (const std::string &amp;controller, const DeviceStateTransition next) -&gt; bool</td></tr>
<tr class="memdesc:adb2b7857434e48018dfe6b17044dcef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request a device state transition. <a href="classfair_1_1mq_1_1PluginServices.html#adb2b7857434e48018dfe6b17044dcef9">More...</a><br /></td></tr>
<tr class="separator:adb2b7857434e48018dfe6b17044dcef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98b235e5119d863dbb7adeb00938d449"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">SubscribeToDeviceStateChange</a> (const std::string &amp;subscriber, std::function&lt; void(DeviceState)&gt; callback) -&gt; void</td></tr>
<tr class="memdesc:a98b235e5119d863dbb7adeb00938d449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe with a callback to device state changes. <a href="classfair_1_1mq_1_1PluginServices.html#a98b235e5119d863dbb7adeb00938d449">More...</a><br /></td></tr>
<tr class="separator:a98b235e5119d863dbb7adeb00938d449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a657506e2afe946ada3deff4ecc40e4d1"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">UnsubscribeFromDeviceStateChange</a> (const std::string &amp;subscriber) -&gt; void</td></tr>
<tr class="memdesc:a657506e2afe946ada3deff4ecc40e4d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsubscribe from device state changes. <a href="classfair_1_1mq_1_1PluginServices.html#a657506e2afe946ada3deff4ecc40e4d1">More...</a><br /></td></tr>
<tr class="separator:a657506e2afe946ada3deff4ecc40e4d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ab97f8394a3e1552277ff2564e16c6a"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">PropertyExists</a> (const std::string &amp;key) const -&gt; bool</td></tr>
<tr class="memdesc:a1ab97f8394a3e1552277ff2564e16c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks a property with the given key exist in the configuration. <a href="classfair_1_1mq_1_1PluginServices.html#a1ab97f8394a3e1552277ff2564e16c6a">More...</a><br /></td></tr>
<tr class="separator:a1ab97f8394a3e1552277ff2564e16c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae06ecdf4d79d3a1e7d850dfab4239200"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae06ecdf4d79d3a1e7d850dfab4239200"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">SetProperty</a> (const std::string &amp;key, T val) -&gt; void</td></tr>
<tr class="memdesc:ae06ecdf4d79d3a1e7d850dfab4239200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set config property. <a href="classfair_1_1mq_1_1PluginServices.html#ae06ecdf4d79d3a1e7d850dfab4239200">More...</a><br /></td></tr>
<tr class="separator:ae06ecdf4d79d3a1e7d850dfab4239200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad186ca529c4c374d35d9229019e83e10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">SetProperties</a> (const fair::mq::Properties &amp;props)</td></tr>
<tr class="memdesc:ad186ca529c4c374d35d9229019e83e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set multiple config properties. <a href="classfair_1_1mq_1_1PluginServices.html#ad186ca529c4c374d35d9229019e83e10">More...</a><br /></td></tr>
<tr class="separator:ad186ca529c4c374d35d9229019e83e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4622c8b748222585a14de5623eea4cd2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4622c8b748222585a14de5623eea4cd2"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">UpdateProperty</a> (const std::string &amp;key, T val)</td></tr>
<tr class="memdesc:a4622c8b748222585a14de5623eea4cd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates an existing config property (or fails if it doesn't exist) <a href="classfair_1_1mq_1_1PluginServices.html#a4622c8b748222585a14de5623eea4cd2">More...</a><br /></td></tr>
<tr class="separator:a4622c8b748222585a14de5623eea4cd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f00de35770ed226b3d9c467c6b0f6e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">UpdateProperties</a> (const fair::mq::Properties &amp;input)</td></tr>
<tr class="memdesc:a56f00de35770ed226b3d9c467c6b0f6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates multiple existing config properties (or fails of any of then do not exist, leaving property store unchanged) <a href="classfair_1_1mq_1_1PluginServices.html#a56f00de35770ed226b3d9c467c6b0f6e">More...</a><br /></td></tr>
<tr class="separator:a56f00de35770ed226b3d9c467c6b0f6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4d010d8cecae6e801df6308e8f6197"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">DeleteProperty</a> (const std::string &amp;key)</td></tr>
<tr class="memdesc:aea4d010d8cecae6e801df6308e8f6197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a property with the given key from the config store. <a href="classfair_1_1mq_1_1PluginServices.html#aea4d010d8cecae6e801df6308e8f6197">More...</a><br /></td></tr>
<tr class="separator:aea4d010d8cecae6e801df6308e8f6197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc2f2ddc5a3e2d6a5846672d40cac359"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:adc2f2ddc5a3e2d6a5846672d40cac359"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">GetProperty</a> (const std::string &amp;key) const -&gt; T</td></tr>
<tr class="memdesc:adc2f2ddc5a3e2d6a5846672d40cac359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read config property, throw if no property with this key exists. <a href="classfair_1_1mq_1_1PluginServices.html#adc2f2ddc5a3e2d6a5846672d40cac359">More...</a><br /></td></tr>
<tr class="separator:adc2f2ddc5a3e2d6a5846672d40cac359"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65971490d4b0a9d0a3dfe0303b4c454b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a65971490d4b0a9d0a3dfe0303b4c454b"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a65971490d4b0a9d0a3dfe0303b4c454b">GetProperty</a> (const std::string &amp;key, const T &amp;ifNotFound) const</td></tr>
<tr class="memdesc:a65971490d4b0a9d0a3dfe0303b4c454b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read config property, return provided value if no property with this key exists. <a href="classfair_1_1mq_1_1PluginServices.html#a65971490d4b0a9d0a3dfe0303b4c454b">More...</a><br /></td></tr>
<tr class="separator:a65971490d4b0a9d0a3dfe0303b4c454b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49179c80826ae5ec87d77b8d50d8ec44"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">GetPropertyAsString</a> (const std::string &amp;key) const -&gt; std::string</td></tr>
<tr class="memdesc:a49179c80826ae5ec87d77b8d50d8ec44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read config property as string, throw if no property with this key exists. <a href="classfair_1_1mq_1_1PluginServices.html#a49179c80826ae5ec87d77b8d50d8ec44">More...</a><br /></td></tr>
<tr class="separator:a49179c80826ae5ec87d77b8d50d8ec44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0aec32c563c0c0db3fd865a3e89f53"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#acc0aec32c563c0c0db3fd865a3e89f53">GetPropertyAsString</a> (const std::string &amp;key, const std::string &amp;ifNotFound) const -&gt; std::string</td></tr>
<tr class="memdesc:acc0aec32c563c0c0db3fd865a3e89f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read config property, return provided value if no property with this key exists. <a href="classfair_1_1mq_1_1PluginServices.html#acc0aec32c563c0c0db3fd865a3e89f53">More...</a><br /></td></tr>
<tr class="separator:acc0aec32c563c0c0db3fd865a3e89f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a352fad62f282e921b0c722dfcbaaa73d"><td class="memItemLeft" align="right" valign="top">fair::mq::Properties&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">GetProperties</a> (const std::string &amp;q) const</td></tr>
<tr class="memdesc:a352fad62f282e921b0c722dfcbaaa73d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read several config properties whose keys match the provided regular expression. <a href="classfair_1_1mq_1_1PluginServices.html#a352fad62f282e921b0c722dfcbaaa73d">More...</a><br /></td></tr>
<tr class="separator:a352fad62f282e921b0c722dfcbaaa73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f48923e4b80022827bd416ffe8f38bc"><td class="memItemLeft" align="right" valign="top">fair::mq::Properties&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">GetPropertiesStartingWith</a> (const std::string &amp;q) const</td></tr>
<tr class="memdesc:a9f48923e4b80022827bd416ffe8f38bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read several config properties whose keys start with the provided string. <a href="classfair_1_1mq_1_1PluginServices.html#a9f48923e4b80022827bd416ffe8f38bc">More...</a><br /></td></tr>
<tr class="separator:a9f48923e4b80022827bd416ffe8f38bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4d3fd1caf8beffefc992b89e7479007"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">GetPropertiesAsString</a> (const std::string &amp;q) const</td></tr>
<tr class="memdesc:af4d3fd1caf8beffefc992b89e7479007"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read several config properties as string whose keys match the provided regular expression. <a href="classfair_1_1mq_1_1PluginServices.html#af4d3fd1caf8beffefc992b89e7479007">More...</a><br /></td></tr>
<tr class="separator:af4d3fd1caf8beffefc992b89e7479007"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a118417e34fd4f398e77f7f5fe7153661"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">GetPropertiesAsStringStartingWith</a> (const std::string &amp;q) const</td></tr>
<tr class="memdesc:a118417e34fd4f398e77f7f5fe7153661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read several config properties as string whose keys start with the provided string. <a href="classfair_1_1mq_1_1PluginServices.html#a118417e34fd4f398e77f7f5fe7153661">More...</a><br /></td></tr>
<tr class="separator:a118417e34fd4f398e77f7f5fe7153661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab966df2353bbce792a5b938f420080c0"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">GetChannelInfo</a> () const -&gt; std::unordered_map&lt; std::string, int &gt;</td></tr>
<tr class="memdesc:ab966df2353bbce792a5b938f420080c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve current channel information. <a href="classfair_1_1mq_1_1PluginServices.html#ab966df2353bbce792a5b938f420080c0">More...</a><br /></td></tr>
<tr class="separator:ab966df2353bbce792a5b938f420080c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e090fa0029724f23a1ef3fcacb928d2"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">GetPropertyKeys</a> () const -&gt; std::vector&lt; std::string &gt;</td></tr>
<tr class="memdesc:a4e090fa0029724f23a1ef3fcacb928d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Discover the list of property keys. <a href="classfair_1_1mq_1_1PluginServices.html#a4e090fa0029724f23a1ef3fcacb928d2">More...</a><br /></td></tr>
<tr class="separator:a4e090fa0029724f23a1ef3fcacb928d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd34c038f5c3c94338419bbd887f3d14"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:abd34c038f5c3c94338419bbd887f3d14"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">SubscribeToPropertyChange</a> (const std::string &amp;subscriber, std::function&lt; void(const std::string &amp;key, T)&gt; callback) const -&gt; void</td></tr>
<tr class="memdesc:abd34c038f5c3c94338419bbd887f3d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to property updates of type T. <a href="classfair_1_1mq_1_1PluginServices.html#abd34c038f5c3c94338419bbd887f3d14">More...</a><br /></td></tr>
<tr class="separator:abd34c038f5c3c94338419bbd887f3d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b96fc3f61efccfa5c2048eb578b60e5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1b96fc3f61efccfa5c2048eb578b60e5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">UnsubscribeFromPropertyChange</a> (const std::string &amp;subscriber) -&gt; void</td></tr>
<tr class="memdesc:a1b96fc3f61efccfa5c2048eb578b60e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsubscribe from property updates of type T. <a href="classfair_1_1mq_1_1PluginServices.html#a1b96fc3f61efccfa5c2048eb578b60e5">More...</a><br /></td></tr>
<tr class="separator:a1b96fc3f61efccfa5c2048eb578b60e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6c37fce55cb631d9f5be45b93a544f9"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">SubscribeToPropertyChangeAsString</a> (const std::string &amp;subscriber, std::function&lt; void(const std::string &amp;key, std::string)&gt; callback) const -&gt; void</td></tr>
<tr class="memdesc:ad6c37fce55cb631d9f5be45b93a544f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to property updates. <a href="classfair_1_1mq_1_1PluginServices.html#ad6c37fce55cb631d9f5be45b93a544f9">More...</a><br /></td></tr>
<tr class="separator:ad6c37fce55cb631d9f5be45b93a544f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a746aba1505ae9117a28886de85111e16"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">UnsubscribeFromPropertyChangeAsString</a> (const std::string &amp;subscriber) -&gt; void</td></tr>
<tr class="memdesc:a746aba1505ae9117a28886de85111e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsubscribe from property updates that convert to string. <a href="classfair_1_1mq_1_1PluginServices.html#a746aba1505ae9117a28886de85111e16">More...</a><br /></td></tr>
<tr class="separator:a746aba1505ae9117a28886de85111e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e4ee07b3e64aca15079165f94ef4580"><td class="memItemLeft" align="right" valign="top"><a id="a7e4ee07b3e64aca15079165f94ef4580"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a7e4ee07b3e64aca15079165f94ef4580">CycleLogConsoleSeverityUp</a> () -&gt; void</td></tr>
<tr class="memdesc:a7e4ee07b3e64aca15079165f94ef4580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases console logging severity, or sets it to lowest if it is already highest. <br /></td></tr>
<tr class="separator:a7e4ee07b3e64aca15079165f94ef4580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69294d8b0771e3b65d4d4157c4559c52"><td class="memItemLeft" align="right" valign="top"><a id="a69294d8b0771e3b65d4d4157c4559c52"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a69294d8b0771e3b65d4d4157c4559c52">CycleLogConsoleSeverityDown</a> () -&gt; void</td></tr>
<tr class="memdesc:a69294d8b0771e3b65d4d4157c4559c52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decreases console logging severity, or sets it to highest if it is already lowest. <br /></td></tr>
<tr class="separator:a69294d8b0771e3b65d4d4157c4559c52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a364225377b53067f0bfa1e006fbe069e"><td class="memItemLeft" align="right" valign="top"><a id="a364225377b53067f0bfa1e006fbe069e"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a364225377b53067f0bfa1e006fbe069e">CycleLogVerbosityUp</a> () -&gt; void</td></tr>
<tr class="memdesc:a364225377b53067f0bfa1e006fbe069e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases logging verbosity, or sets it to lowest if it is already highest. <br /></td></tr>
<tr class="separator:a364225377b53067f0bfa1e006fbe069e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95095ff2174a531e48d83ee1cfa293d5"><td class="memItemLeft" align="right" valign="top"><a id="a95095ff2174a531e48d83ee1cfa293d5"></a>
auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a95095ff2174a531e48d83ee1cfa293d5">CycleLogVerbosityDown</a> () -&gt; void</td></tr>
<tr class="memdesc:a95095ff2174a531e48d83ee1cfa293d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decreases logging verbosity, or sets it to highest if it is already lowest. <br /></td></tr>
<tr class="separator:a95095ff2174a531e48d83ee1cfa293d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aba55018cac4ae8341f491c662c482130"><td class="memItemLeft" align="right" valign="top">static auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">ToDeviceState</a> (const std::string &amp;state) -&gt; DeviceState</td></tr>
<tr class="memdesc:aba55018cac4ae8341f491c662c482130"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert string to DeviceState. <a href="classfair_1_1mq_1_1PluginServices.html#aba55018cac4ae8341f491c662c482130">More...</a><br /></td></tr>
<tr class="separator:aba55018cac4ae8341f491c662c482130"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f74475cef8ab1c39b87f8948b35e0a0"><td class="memItemLeft" align="right" valign="top">static auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">ToDeviceStateTransition</a> (const std::string &amp;transition) -&gt; DeviceStateTransition</td></tr>
<tr class="memdesc:a7f74475cef8ab1c39b87f8948b35e0a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert string to DeviceStateTransition. <a href="classfair_1_1mq_1_1PluginServices.html#a7f74475cef8ab1c39b87f8948b35e0a0">More...</a><br /></td></tr>
<tr class="separator:a7f74475cef8ab1c39b87f8948b35e0a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ed12471e1736e2545645f3a12238d69"><td class="memItemLeft" align="right" valign="top">static auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">ToStr</a> (DeviceState state) -&gt; std::string</td></tr>
<tr class="memdesc:a1ed12471e1736e2545645f3a12238d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert DeviceState to string. <a href="classfair_1_1mq_1_1PluginServices.html#a1ed12471e1736e2545645f3a12238d69">More...</a><br /></td></tr>
<tr class="separator:a1ed12471e1736e2545645f3a12238d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa12e9fe01d4285d31576ef3418098698"><td class="memItemLeft" align="right" valign="top">static auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfair_1_1mq_1_1PluginServices.html#aa12e9fe01d4285d31576ef3418098698">ToStr</a> (DeviceStateTransition transition) -&gt; std::string</td></tr>
<tr class="memdesc:aa12e9fe01d4285d31576ef3418098698"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert DeviceStateTransition to string. <a href="classfair_1_1mq_1_1PluginServices.html#aa12e9fe01d4285d31576ef3418098698">More...</a><br /></td></tr>
<tr class="separator:aa12e9fe01d4285d31576ef3418098698"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Facilitates communication between devices and plugins. </p>
<ul>
<li>Configuration interface</li>
<li>Control interface </li>
</ul>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="adb2b7857434e48018dfe6b17044dcef9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb2b7857434e48018dfe6b17044dcef9">&#9670;&nbsp;</a></span>ChangeDeviceState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto PluginServices::ChangeDeviceState </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>controller</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const DeviceStateTransition&#160;</td>
<td class="paramname"><em>next</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> -&gt; bool</td>
</tr>
</table>
</div><div class="memdoc">
<p>Request a device state transition. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>id </td></tr>
<tr><td class="paramname">next</td><td>state transition </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="structfair_1_1mq_1_1PluginServices_1_1DeviceControlError.html">fair::mq::PluginServices::DeviceControlError</a></td><td>if control role is not currently owned by passed controller id.</td></tr>
</table>
</dd>
</dl>
<p>The state transition may not happen immediately, but when the current state evaluates the pending transition event and terminates. In other words, the device states are scheduled cooperatively. If the device control role has not been taken yet, calling this function will take over control implicitely. </p>
</div>
</div>
<a id="aea4d010d8cecae6e801df6308e8f6197"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea4d010d8cecae6e801df6308e8f6197">&#9670;&nbsp;</a></span>DeleteProperty()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void fair::mq::PluginServices::DeleteProperty </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes a property with the given key from the config store. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab966df2353bbce792a5b938f420080c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab966df2353bbce792a5b938f420080c0">&#9670;&nbsp;</a></span>GetChannelInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetChannelInfo </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const -&gt; std::unordered_map&lt;std::string, int&gt; </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve current channel information. </p>
<dl class="section return"><dt>Returns</dt><dd>a map of &lt;channel name, number of subchannels&gt; </dd></dl>
</div>
</div>
<a id="ac93964a0e35ca0ed91bfbaab6405be82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac93964a0e35ca0ed91bfbaab6405be82">&#9670;&nbsp;</a></span>GetCurrentDeviceState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetCurrentDeviceState </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const -&gt; DeviceState </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>current device state </dd></dl>
</div>
</div>
<a id="a352fad62f282e921b0c722dfcbaaa73d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a352fad62f282e921b0c722dfcbaaa73d">&#9670;&nbsp;</a></span>GetProperties()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fair::mq::Properties fair::mq::PluginServices::GetProperties </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>q</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read several config properties whose keys match the provided regular expression. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">q</td><td>regex string to match for </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>container with properties (fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any) </dd></dl>
</div>
</div>
<a id="af4d3fd1caf8beffefc992b89e7479007"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4d3fd1caf8beffefc992b89e7479007">&#9670;&nbsp;</a></span>GetPropertiesAsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::map&lt;std::string, std::string&gt; fair::mq::PluginServices::GetPropertiesAsString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>q</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read several config properties as string whose keys match the provided regular expression. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">q</td><td>regex string to match for </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>container with properties (fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any) </dd></dl>
</div>
</div>
<a id="a118417e34fd4f398e77f7f5fe7153661"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a118417e34fd4f398e77f7f5fe7153661">&#9670;&nbsp;</a></span>GetPropertiesAsStringStartingWith()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::map&lt;std::string, std::string&gt; fair::mq::PluginServices::GetPropertiesAsStringStartingWith </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>q</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read several config properties as string whose keys start with the provided string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">q</td><td>string to match for </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>container with properties (fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any)</dd></dl>
<p>Typically more performant than GetPropertiesAsString with regex </p>
</div>
</div>
<a id="a9f48923e4b80022827bd416ffe8f38bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f48923e4b80022827bd416ffe8f38bc">&#9670;&nbsp;</a></span>GetPropertiesStartingWith()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fair::mq::Properties fair::mq::PluginServices::GetPropertiesStartingWith </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>q</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read several config properties whose keys start with the provided string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">q</td><td>string to match for </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>container with properties (fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any)</dd></dl>
<p>Typically more performant than GetProperties with regex </p>
</div>
</div>
<a id="adc2f2ddc5a3e2d6a5846672d40cac359"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc2f2ddc5a3e2d6a5846672d40cac359">&#9670;&nbsp;</a></span>GetProperty() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetProperty </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const -&gt; T </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read config property, throw if no property with this key exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>config property </dd></dl>
</div>
</div>
<a id="a65971490d4b0a9d0a3dfe0303b4c454b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65971490d4b0a9d0a3dfe0303b4c454b">&#9670;&nbsp;</a></span>GetProperty() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T fair::mq::PluginServices::GetProperty </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>ifNotFound</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read config property, return provided value if no property with this key exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
<tr><td class="paramname">ifNotFound</td><td>value to return if key is not found </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>config property </dd></dl>
</div>
</div>
<a id="a49179c80826ae5ec87d77b8d50d8ec44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49179c80826ae5ec87d77b8d50d8ec44">&#9670;&nbsp;</a></span>GetPropertyAsString() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetPropertyAsString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const -&gt; std::string </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read config property as string, throw if no property with this key exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>config property converted to string</dd></dl>
<p>Supports conversion to string for a fixed set of types, for custom/unsupported types add them via <code>fair::mq::PropertyHelper::AddType&lt;MyType&gt;("optional label")</code> the provided type must then be convertible to string via operator&lt;&lt; </p>
</div>
</div>
<a id="acc0aec32c563c0c0db3fd865a3e89f53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc0aec32c563c0c0db3fd865a3e89f53">&#9670;&nbsp;</a></span>GetPropertyAsString() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetPropertyAsString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ifNotFound</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const -&gt; std::string </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read config property, return provided value if no property with this key exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
<tr><td class="paramname">ifNotFound</td><td>value to return if key is not found </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>config property converted to string</dd></dl>
<p>Supports conversion to string for a fixed set of types, for custom/unsupported types add them via <code>fair::mq::PropertyHelper::AddType&lt;MyType&gt;("optional label")</code> the provided type must then be convertible to string via operator&lt;&lt; </p>
</div>
</div>
<a id="a4e090fa0029724f23a1ef3fcacb928d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e090fa0029724f23a1ef3fcacb928d2">&#9670;&nbsp;</a></span>GetPropertyKeys()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::GetPropertyKeys </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const -&gt; std::vector&lt;std::string&gt; </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Discover the list of property keys. </p>
<dl class="section return"><dt>Returns</dt><dd>list of property keys </dd></dl>
</div>
</div>
<a id="a1ab97f8394a3e1552277ff2564e16c6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ab97f8394a3e1552277ff2564e16c6a">&#9670;&nbsp;</a></span>PropertyExists()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::PropertyExists </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const -&gt; bool </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks a property with the given key exist in the configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if it exists, false otherwise </dd></dl>
</div>
</div>
<a id="af7127f156ba970298a23b8b67550a43b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7127f156ba970298a23b8b67550a43b">&#9670;&nbsp;</a></span>ReleaseDeviceControl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto PluginServices::ReleaseDeviceControl </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>controller</em></td><td>)</td>
<td> -&gt; void</td>
</tr>
</table>
</div><div class="memdoc">
<p>Release device controller role. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>id </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="structfair_1_1mq_1_1PluginServices_1_1DeviceControlError.html">fair::mq::PluginServices::DeviceControlError</a></td><td>if passed controller id is not the current device controller. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad186ca529c4c374d35d9229019e83e10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad186ca529c4c374d35d9229019e83e10">&#9670;&nbsp;</a></span>SetProperties()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void fair::mq::PluginServices::SetProperties </td>
<td>(</td>
<td class="paramtype">const fair::mq::Properties &amp;&#160;</td>
<td class="paramname"><em>props</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set multiple config properties. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">props</td><td>fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae06ecdf4d79d3a1e7d850dfab4239200"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae06ecdf4d79d3a1e7d850dfab4239200">&#9670;&nbsp;</a></span>SetProperty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::SetProperty </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> -&gt; void </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set config property. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
<tr><td class="paramname">val</td><td>Setting a config property will store the value in the FairMQ internal config store and notify any subscribers about the update. It is property dependent, if the call to this method will have an immediate, delayed or any effect at all. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a546360c16172c5d3c83f483871fa0c7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a546360c16172c5d3c83f483871fa0c7e">&#9670;&nbsp;</a></span>StealDeviceControl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto PluginServices::StealDeviceControl </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>controller</em></td><td>)</td>
<td> -&gt; void</td>
</tr>
</table>
</div><div class="memdoc">
<p>Become device controller by force. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>id</td></tr>
</table>
</dd>
</dl>
<p>Take over device controller privileges by force. Does not trigger the ReleaseDeviceControl condition! This function is intended to implement override/emergency control functionality (e.g. device shutdown on SIGINT). </p>
</div>
</div>
<a id="a98b235e5119d863dbb7adeb00938d449"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98b235e5119d863dbb7adeb00938d449">&#9670;&nbsp;</a></span>SubscribeToDeviceStateChange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::SubscribeToDeviceStateChange </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; void(DeviceState)&gt;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> -&gt; void
</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subscribe with a callback to device state changes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td>id </td></tr>
<tr><td class="paramname">callback</td><td>The callback will be called at the beginning of a new state. The callback is called from the thread the state is running in. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="abd34c038f5c3c94338419bbd887f3d14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd34c038f5c3c94338419bbd887f3d14">&#9670;&nbsp;</a></span>SubscribeToPropertyChange()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::SubscribeToPropertyChange </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; void(const std::string &amp;key, T)&gt;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const -&gt; void
</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subscribe to property updates of type T. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td></td></tr>
<tr><td class="paramname">callback</td><td>function</td></tr>
</table>
</dd>
</dl>
<p>Subscribe to property changes with a callback to monitor property changes in an event based fashion. </p>
</div>
</div>
<a id="ad6c37fce55cb631d9f5be45b93a544f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6c37fce55cb631d9f5be45b93a544f9">&#9670;&nbsp;</a></span>SubscribeToPropertyChangeAsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::SubscribeToPropertyChangeAsString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; void(const std::string &amp;key, std::string)&gt;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const -&gt; void
</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subscribe to property updates. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td></td></tr>
<tr><td class="paramname">callback</td><td>function</td></tr>
</table>
</dd>
</dl>
<p>Subscribe to property changes with a callback to monitor property changes in an event based fashion. Will convert the property to string. </p>
</div>
</div>
<a id="ab2bab89d575dd90828d492cf2d0d2f5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2bab89d575dd90828d492cf2d0d2f5e">&#9670;&nbsp;</a></span>TakeDeviceControl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">auto PluginServices::TakeDeviceControl </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>controller</em></td><td>)</td>
<td> -&gt; void</td>
</tr>
</table>
</div><div class="memdoc">
<p>Become device controller. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>id </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="structfair_1_1mq_1_1PluginServices_1_1DeviceControlError.html">fair::mq::PluginServices::DeviceControlError</a></td><td>if there is already a device controller.</td></tr>
</table>
</dd>
</dl>
<p>Only one plugin can succeed to take control over device state transitions at a time. </p>
</div>
</div>
<a id="aba55018cac4ae8341f491c662c482130"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba55018cac4ae8341f491c662c482130">&#9670;&nbsp;</a></span>ToDeviceState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static auto fair::mq::PluginServices::ToDeviceState </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td> -&gt; DeviceState </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert string to DeviceState. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>to convert </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>DeviceState enum entry </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>if a string cannot be resolved to a DeviceState </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7f74475cef8ab1c39b87f8948b35e0a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f74475cef8ab1c39b87f8948b35e0a0">&#9670;&nbsp;</a></span>ToDeviceStateTransition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static auto fair::mq::PluginServices::ToDeviceStateTransition </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>transition</em></td><td>)</td>
<td> -&gt; DeviceStateTransition </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert string to DeviceStateTransition. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">transition</td><td>to convert </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>DeviceStateTransition enum entry </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>if a string cannot be resolved to a DeviceStateTransition </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1ed12471e1736e2545645f3a12238d69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ed12471e1736e2545645f3a12238d69">&#9670;&nbsp;</a></span>ToStr() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static auto fair::mq::PluginServices::ToStr </td>
<td>(</td>
<td class="paramtype">DeviceState&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td> -&gt; std::string </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert DeviceState to string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>to convert </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string representation of DeviceState enum entry </dd></dl>
</div>
</div>
<a id="aa12e9fe01d4285d31576ef3418098698"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa12e9fe01d4285d31576ef3418098698">&#9670;&nbsp;</a></span>ToStr() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static auto fair::mq::PluginServices::ToStr </td>
<td>(</td>
<td class="paramtype">DeviceStateTransition&#160;</td>
<td class="paramname"><em>transition</em></td><td>)</td>
<td> -&gt; std::string </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert DeviceStateTransition to string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">transition</td><td>to convert </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string representation of DeviceStateTransition enum entry </dd></dl>
</div>
</div>
<a id="a657506e2afe946ada3deff4ecc40e4d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a657506e2afe946ada3deff4ecc40e4d1">&#9670;&nbsp;</a></span>UnsubscribeFromDeviceStateChange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::UnsubscribeFromDeviceStateChange </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em></td><td>)</td>
<td> -&gt; void </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsubscribe from device state changes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td>id </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1b96fc3f61efccfa5c2048eb578b60e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b96fc3f61efccfa5c2048eb578b60e5">&#9670;&nbsp;</a></span>UnsubscribeFromPropertyChange()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::UnsubscribeFromPropertyChange </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em></td><td>)</td>
<td> -&gt; void </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsubscribe from property updates of type T. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a746aba1505ae9117a28886de85111e16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a746aba1505ae9117a28886de85111e16">&#9670;&nbsp;</a></span>UnsubscribeFromPropertyChangeAsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto fair::mq::PluginServices::UnsubscribeFromPropertyChangeAsString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>subscriber</em></td><td>)</td>
<td> -&gt; void </td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsubscribe from property updates that convert to string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subscriber</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a56f00de35770ed226b3d9c467c6b0f6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56f00de35770ed226b3d9c467c6b0f6e">&#9670;&nbsp;</a></span>UpdateProperties()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool fair::mq::PluginServices::UpdateProperties </td>
<td>(</td>
<td class="paramtype">const fair::mq::Properties &amp;&#160;</td>
<td class="paramname"><em>input</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates multiple existing config properties (or fails of any of then do not exist, leaving property store unchanged) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">props</td><td>(fair::mq::Properties as an alias for std::map&lt;std::string, Property&gt;, where property is boost::any) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4622c8b748222585a14de5623eea4cd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4622c8b748222585a14de5623eea4cd2">&#9670;&nbsp;</a></span>UpdateProperty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool fair::mq::PluginServices::UpdateProperty </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates an existing config property (or fails if it doesn't exist) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td></td></tr>
<tr><td class="paramname">val</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>fairmq/<a class="el" href="PluginServices_8h_source.html">PluginServices.h</a></li>
<li>fairmq/PluginServices.cxx</li>
</ul>
</div><!-- contents -->
<p style="margin: 0 12px 10px 12px;"><a href="https://help.github.com/articles/github-privacy-statement/">privacy</a></p>