File: EventEngine_8idl_source.html

package info (click to toggle)
raritan-json-rpc-sdk 3.6.1%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 41,748 kB
  • sloc: cs: 162,629; perl: 85,818; python: 24,275; javascript: 5,937; makefile: 21
file content (131 lines) | stat: -rw-r--r-- 89,897 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Raritan PX2/PX3 JSON-RPC API: pdu-json-rpc-api/idl/EventEngine.idl 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">Raritan PX2/PX3 JSON-RPC API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<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"><a class="el" href="dir_6f2e57e4ed4c9ccdca310d1229964312.html">pdu-json-rpc-api</a></li><li class="navelem"><a class="el" href="dir_8ea0db9e05c169824aafe6441489b6ed.html">idl</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">EventEngine.idl</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/* SPDX-License-Identifier: BSD-3-Clause */</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2009 Raritan Inc. All rights reserved.</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * Event interface</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;module <span class="keyword">event</span> {</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">    /**</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">     * Helper that is used wherever key/value pairs are required.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">     * @note This interface was designed before IDL maps were supported.</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="structevent_1_1KeyValue.html">   18</a></span>&#160;    structure <a class="code" href="structevent_1_1KeyValue.html">KeyValue</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="structevent_1_1KeyValue.html#acd87ebf7db1fadbae86c4e230cd40f9e">   19</a></span>&#160;        <span class="keywordtype">string</span> <a class="code" href="structevent_1_1KeyValue.html#acd87ebf7db1fadbae86c4e230cd40f9e">key</a>;     <span class="comment">///&lt; Key</span></div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="structevent_1_1KeyValue.html#af703cfeeef900c5a393fbe23c54aaa39">   20</a></span>&#160;<span class="comment"></span>        <span class="keywordtype">string</span> <a class="code" href="structevent_1_1KeyValue.html#af703cfeeef900c5a393fbe23c54aaa39">value</a>;   <span class="comment">///&lt; Value</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span>    };</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment"></span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    /**</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">     * Event has a type:</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">     *   a STATE event indicates that a boolean state has been</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">     *     changed, i.e. asserted or deasserted</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">     *   a TRIGGER event is one that has no state assigned.</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">     *     conceptually it is asserted and deasserted at once.</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">     * The id has multiple components that form a path into a hierarchy.</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">     * The value (&quot;asserted&quot;) indicates whether the state has become</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">     * true (assertion) or false (deassertion). For events of type TRIGGER</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">     * this will be true always.</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html">   34</a></span>&#160;    structure <a class="code" href="structevent_1_1Event.html">Event</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">        /** Event type */</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174">   37</a></span>&#160;        enumeration <a class="code" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174">Type</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174acca8de5e142b1f1061513471c60c3e1a">   38</a></span>&#160;            <a class="code" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174acca8de5e142b1f1061513471c60c3e1a">STATE</a>,                      <span class="comment">///&lt; State event</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174a0c8d2ab3da615fcd501c58bf10b5620d">   39</a></span>&#160;<span class="comment"></span>            TRIGGER                     <span class="comment">///&lt; Trigger event</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment"></span>        };</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#ab0097147891d5e151152dd7f65f9c8e1">   42</a></span>&#160;        <a class="code" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174">Type</a>            <a class="code" href="structevent_1_1Event.html#ab0097147891d5e151152dd7f65f9c8e1">type</a>;           <span class="comment">///&lt; Event type</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a14947f041c671d9f7127c026842609c7">   43</a></span>&#160;<span class="comment"></span>        vector&lt;string&gt;  <a class="code" href="structevent_1_1Event.html#a14947f041c671d9f7127c026842609c7">id</a>;             <span class="comment">///&lt; Event id vector</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a882750d2b59c596ba94141e943c86e66">   44</a></span>&#160;<span class="comment"></span>        <span class="keywordtype">boolean</span>         <a class="code" href="structevent_1_1Event.html#a882750d2b59c596ba94141e943c86e66">asserted</a>;       <span class="comment">///&lt; Assertion value</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a32d585239f5cdaf6d8df3284f477063e">   45</a></span>&#160;<span class="comment"></span>        time            <a class="code" href="structevent_1_1Event.html#a32d585239f5cdaf6d8df3284f477063e">timeStamp</a>;      <span class="comment">///&lt; Timestamp</span></div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structevent_1_1Event.html#a52ecef47b99cc925d14b03b0798a505a">   46</a></span>&#160;<span class="comment"></span>        vector&lt;KeyValue&gt; <a class="code" href="structevent_1_1Event.html#a52ecef47b99cc925d14b03b0798a505a">context</a>;       <span class="comment">///&lt; Context map</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span>    };</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    /**</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">     * There is a single event engine instance reachable by a well known</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">     * reference.</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="interfaceevent_1_1Engine__1__0__1.html">   53</a></span>&#160;    <span class="keyword">interface </span><a class="code" href="interfaceevent_1_1Engine__1__0__1.html">Engine_1_0_1</a> {</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="comment">/* Event registration and query */</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="comment">/* ---------------------------- */</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">         * An event descriptor.</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">         * In case eventDescType is LEAF then the descriptor refers to a</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">         * &#39;real&#39; event. In this case eventType is set and the entries vector</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">         * is empty. Otherwise eventType is a don&#39;t care and the entries vector</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">         * contains sub-entries. In case eventDescType is DYN_NODE then the</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">         * dynNodeContext contains a key which is used to generate a dynamic</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">         * node.</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html">   68</a></span>&#160;        structure <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html">EventDesc</a> {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">            /** Event descriptor type */</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158c">   71</a></span>&#160;            enumeration <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158c">Type</a> {</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158ca91055098c40a949c2d0f3e6cf6550332">   72</a></span>&#160;                <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158ca91055098c40a949c2d0f3e6cf6550332">NODE</a>,                   <span class="comment">///&lt; Intermediate node</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158cab4cbf8942eb4fb0befd300d2c43310f4">   73</a></span>&#160;<span class="comment"></span>                <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158cab4cbf8942eb4fb0befd300d2c43310f4">DYN_NODE</a>,               <span class="comment">///&lt; Dynamic node</span></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158caed0a939d0114bd1fbde327de9d6750f2">   74</a></span>&#160;<span class="comment"></span>                LEAF                    <span class="comment">///&lt; Leaf node</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment"></span>            };</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#aa8085b63fbbbfd736b4e716b276c4235">   77</a></span>&#160;            <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158c">Type</a> <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#aa8085b63fbbbfd736b4e716b276c4235">eventDescType</a>;         <span class="comment">///&lt; Event descriptor type</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a43cb95a3886740fc2b2dfbba3c08ce96">   78</a></span>&#160;<span class="comment"></span>            <a class="code" href="structevent_1_1Event.html">Event</a>.<a class="code" href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174">Type</a> <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a43cb95a3886740fc2b2dfbba3c08ce96">eventType</a>;       <span class="comment">///&lt; Event type</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#acd123580e8b2870c5c40f13569257adf">   79</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#acd123580e8b2870c5c40f13569257adf">dynNodeContext</a>;      <span class="comment">///&lt; Dynamic node context</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afd2919d901073c79175795ae60dfbfb8">   80</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afd2919d901073c79175795ae60dfbfb8">idComp</a>;              <span class="comment">///&lt; Event ID component</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a9b19d4912cff140c536daf4411329bf5">   81</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a9b19d4912cff140c536daf4411329bf5">name</a>;                <span class="comment">///&lt; User-defined name</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#abf79edba461a3ea37c9b19c27807c08e">   82</a></span>&#160;<span class="comment"></span>            vector&lt;EventDesc&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#abf79edba461a3ea37c9b19c27807c08e">entries</a>;  <span class="comment">///&lt; Child nodes</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"></span>        };</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">         * Query existing event descriptors.</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">         * @return 1 if id was not found</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordtype">int</span> listEventDescs(in vector&lt;string&gt; eventIdPrefix,</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                           out vector&lt;EventDesc&gt; eventDescs);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        </div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="comment">/* Action definition and query */</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="comment">/* --------------------------- */</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">         * List all available action types. The action type is intentionally</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">         * defined generically so that implementation can be extensible without</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment">         * changing interface.</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        vector&lt;string&gt; listActionTypes();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment">         * An action is a tuple of &#39;id&#39; (unique within the scope of this event</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">         * engine), &#39;name&#39; which is unique as well and used by the GUI as user</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment">         * readable identificator, &#39;isSystem&#39; which denotes the action as</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">         * system action, &#39;type&#39; which defines what it is, and an argument</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">         * vector that vary depending on type and which is passed to the action.</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">         * The &#39;isSystem&#39; flag is readonly and if set marks the action as not</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">         * deletable.</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html">  114</a></span>&#160;        structure <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html">Action</a> {</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html#a7d469d8a261519c06c4cc3762083d3b8">  115</a></span>&#160;            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html#a7d469d8a261519c06c4cc3762083d3b8">id</a>;                  <span class="comment">///&lt; Action ID</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html#a8608c595355ed5ad9bee82ccb13fa18e">  116</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html#a8608c595355ed5ad9bee82ccb13fa18e">name</a>;                <span class="comment">///&lt; User-defined name</span></div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html#aa0649f1cce90a3649d6201520ce72f08">  117</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html#aa0649f1cce90a3649d6201520ce72f08">isSystem</a>;           <span class="comment">///&lt; \c true for system-defined actions</span></div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html#a1c9e1341e298f287e2bc7ff0dad8bfe1">  118</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html#a1c9e1341e298f287e2bc7ff0dad8bfe1">type</a>;                <span class="comment">///&lt; Action type</span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Action.html#a700034fc14da94ca0ae65450f5bd750f">  119</a></span>&#160;<span class="comment"></span>            vector&lt;KeyValue&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html#a700034fc14da94ca0ae65450f5bd750f">arguments</a>; <span class="comment">///&lt; Action argument map</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment"></span>        };</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">         * Add a new action.</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">         * The id and isSystem fields are ignored. The actions&#39;s id field is</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">         * allocated automatically and returned in the actionId parameter.</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">         * @return 1 if the name of the new action already exists</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">         * @return 2 if generating the action id failed</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">         * @return 3 if the maximum number of actions have been created</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordtype">int</span> addAction(in <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html">Action</a> action, out <span class="keywordtype">string</span> actionId);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">         * Modify an action.</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment">         * @return 1 if the name of the new action already exists</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment">         * @return 2 if the action id does not exist</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordtype">int</span> modifyAction(in <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html">Action</a> action);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">         * Remove an action.</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">         * @return 1 if id is unknown</span></div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">         * @return 2 if the action is not deletable</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordtype">int</span> deleteAction(in <span class="keywordtype">string</span> actionId);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment">         * List all actions currently know to this event engine.</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        vector&lt;Action&gt; listActions();</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">         * Trigger an action.</span></div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment">         * This is mainly used for test and debugging. The operation will</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment">         * block until the action has been performed or an error occurred.</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">         * In the latter case errMsg will contain an error message. The</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">         * context is passed to the actions.</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment">         * NOTE: Currently this function doesn&#39;t block!</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">         * @return 1 if id is unknown</span></div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">         * @return 2 if no actor was found for the action</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">         * @return 3 if performing the action failed, errmsg will be set</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordtype">int</span> triggerAction(in <span class="keywordtype">string</span> actionId, out <span class="keywordtype">string</span> errMsg,</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                          in vector&lt;KeyValue&gt; context);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">         * Test an action.</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">         * This is similar to {@link triggerAction}, except that an action</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">         * that is not yet saved can be passed in. Therefore this method</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">         * can be used for testing actions to be newly created. The</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">         * operation will block until the action has been performed or an</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="comment">         * error occurred. In the latter case errMsg will contain an error</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">         * message. The context is passed to the actions.</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">         * NOTE: Currently this function doesn&#39;t block!</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">         * @return 1 if the action name is invalid</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="comment">         * @return 2 if no actor was found for the action</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="comment">         * @return 3 if performing the action failed, errmsg will be set</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keywordtype">int</span> testAction(in <a class="code" href="structevent_1_1Engine__1__0__1_1_1Action.html">Action</a> action, out <span class="keywordtype">string</span> errMsg,</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                       in vector&lt;KeyValue&gt; context);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        </div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="comment">/* Rule Definition and query */</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="comment">/* ------------------------- */</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">         * Condition is a logical combination of multiple events. Normally you</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">         * should use STATE events in logical conditions. In case a TRIGGER</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">         * event is part of a condition or logical operation it will per</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment">         * default be interpreted as deasserted. The TRIGGER will evaluate as</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">         * asserted if that exact event was raised and is matched against the</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">         * event rules. In some sense the &#39;assertion state&#39; of the TRIGGER is</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">         * true only at the moment the Event exists and set to false again once</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">         * it passed. </span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html">  210</a></span>&#160;        structure <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html">Condition</a> {</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">            /** logical operation to be applied over all conditions and event */</span></div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754">  213</a></span>&#160;            enumeration <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754">Op</a> {</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a2f72bf2984e3886de18a5d5349b0b0ec">  214</a></span>&#160;                <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a2f72bf2984e3886de18a5d5349b0b0ec">AND</a>,                    <span class="comment">///&lt; Logical And</span></div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a7d4e071daf103b1ee04f297ea8bae110">  215</a></span>&#160;<span class="comment"></span>                <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a7d4e071daf103b1ee04f297ea8bae110">OR</a>,                     <span class="comment">///&lt; Logical Or</span></div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a3b52fc675fe625caa97a33ce05e7b7df">  216</a></span>&#160;<span class="comment"></span>                XOR                     <span class="comment">///&lt; Exclusive Or</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment"></span>            };</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            <span class="comment"></span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment">            /** the match type how to match the event assertion state */</span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2">  220</a></span>&#160;            enumeration <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2">MatchType</a> {</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a7dd6d9fb1a6d5c55c0e8d74eed505e64">  221</a></span>&#160;                <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a7dd6d9fb1a6d5c55c0e8d74eed505e64">ASSERTED</a>,               <span class="comment">///&lt; Match if the event is asserted</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a98b3bf9d3af11f4d2698085e9c4ffb1e">  222</a></span>&#160;<span class="comment"></span>                <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a98b3bf9d3af11f4d2698085e9c4ffb1e">DEASSERTED</a>,             <span class="comment">///&lt; Match if the event is deasserted</span></div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a43d75205ad856dcfcee837c302b0d133">  223</a></span>&#160;<span class="comment"></span>                BOTH                    <span class="comment">///&lt; Match both (for trigger events)</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment"></span>            };</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a73c208c6f2d958d78e88bf9c80a2dff9">  226</a></span>&#160;            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a73c208c6f2d958d78e88bf9c80a2dff9">negate</a>;             <span class="comment">///&lt; Negate the result</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#afd9377fa5d2fb62121666346605f5d7b">  227</a></span>&#160;<span class="comment"></span>            <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754">Op</a> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#afd9377fa5d2fb62121666346605f5d7b">operation</a>;               <span class="comment">///&lt; Logical operation to be applied</span></div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a2742c06bab1250e80db4e91daa9b342d">  228</a></span>&#160;<span class="comment"></span>            <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2">MatchType</a> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a2742c06bab1250e80db4e91daa9b342d">matchType</a>;        <span class="comment">///&lt; Match type</span></div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a76a0324ce8c42cc5d0faeaef581b6df7">  229</a></span>&#160;<span class="comment"></span>            vector&lt;string&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#a76a0324ce8c42cc5d0faeaef581b6df7">eventId</a>;     <span class="comment">///&lt; Event ID</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Condition.html#af536b5de4c498a3df3a6c76747e5165b">  230</a></span>&#160;<span class="comment"></span>            vector&lt;Condition&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html#af536b5de4c498a3df3a6c76747e5165b">conditions</a>; <span class="comment">///&lt; List of subordinate conditions</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment"></span>        };</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">         * A Rule binds an action to a condition.</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">         * The &#39;id&#39; is an unique identification within the scope of this event</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment">         * engine. The &#39;name&#39; is unique as well and used by the GUI as user</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">         * readable identificator. The flag &#39;isAutoRearm&#39; determines whether</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment">         * actions are triggered again after condition reoccurres. The</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment">         * &#39;hasMatched&#39; flag is true if the condition was true once and the rule</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment">         * is not rearmed yet. The &#39;isSystem&#39; flag is readonly and if set marks</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment">         * the action as not deletable. The &#39;actionIds&#39; are the actions to</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">         * perform if the rule evaluates to true. The arguments are passed to</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">         * the actions.</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html">  246</a></span>&#160;        structure <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html">Rule</a> {</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0f39a696c703b31ef17a348e2f751752">  247</a></span>&#160;            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0f39a696c703b31ef17a348e2f751752">id</a>;                  <span class="comment">///&lt; Rule ID</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#aa10c1b556ed706aa0221850adbcb1d85">  248</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">string</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#aa10c1b556ed706aa0221850adbcb1d85">name</a>;                <span class="comment">///&lt; User-defined name</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a8bead4ae0e20e85b7c22b0e0bcc4d277">  249</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a8bead4ae0e20e85b7c22b0e0bcc4d277">isSystem</a>;           <span class="comment">///&lt; \c true for system-defined rules</span></div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0195bf5c708cd8b753e35dfdfc559311">  250</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0195bf5c708cd8b753e35dfdfc559311">isEnabled</a>;          <span class="comment">///&lt; \c true if the rule is enabled</span></div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#afb477c0453959e22cba9a1a70b157995">  251</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#afb477c0453959e22cba9a1a70b157995">isAutoRearm</a>;        <span class="comment">///&lt; \c true for auto-rearming rules</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#aec4279eda555eccb432fd1607b27fd05">  252</a></span>&#160;<span class="comment"></span>            <span class="keywordtype">boolean</span> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#aec4279eda555eccb432fd1607b27fd05">hasMatched</a>;         <span class="comment">///&lt; \c true if the rule has matched since being armed</span></div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#adeb402d765bbf0db6f132fd2669aad82">  253</a></span>&#160;<span class="comment"></span>            <a class="code" href="structevent_1_1Engine__1__0__1_1_1Condition.html">Condition</a> <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#adeb402d765bbf0db6f132fd2669aad82">condition</a>;        <span class="comment">///&lt; Trigger condition</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#ad56a2c825e26f9718783c4ddccd59679">  254</a></span>&#160;<span class="comment"></span>            vector&lt;string&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#ad56a2c825e26f9718783c4ddccd59679">actionIds</a>;   <span class="comment">///&lt; List of action IDs</span></div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0e8529134b92584f488eb0cdec2e7dbe">  255</a></span>&#160;<span class="comment"></span>            vector&lt;KeyValue&gt; <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0e8529134b92584f488eb0cdec2e7dbe">arguments</a>; <span class="comment">///&lt; Argument map</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment"></span>        };</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="comment">         * Add a new rule.</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="comment">         * The id, hasMatched and isSystem fields are ignored. The rule&#39;s</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment">         * id field is allocated automatically and returned in the the ruleId</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment">         * parameter.</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment">         * @return 1 if the name of the new rule already exists</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment">         * @return 2 if generating the rule id failed</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">         * @return 3 if the rule condition contains an invalid event id</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">         * @return 4 if the maximum number of rules have been created</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment">         * @return 5 if the maximum number of actions per rule is exceeded</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordtype">int</span> addRule(in <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html">Rule</a> rule, out <span class="keywordtype">string</span> ruleId);</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment">         * Modify a rule.</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment">         * The hasMatched and isSystem fields are ignored.</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment">         * @return 1 if the name of the new rule already exists</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment">         * @return 2 if the rule id does not exist</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment">         * @return 3 if the rule condition contains an invalid event id</span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment">         * @return 4 if the maximum number of actions per rule is exceeded</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="keywordtype">int</span> modifyRule(in <a class="code" href="structevent_1_1Engine__1__0__1_1_1Rule.html">Rule</a> rule);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment">         * Enable a rule.</span></div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment">         * An enabled rule will be evaluated when processing events.</span></div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment">         * @return 1 if id is unknown</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keywordtype">int</span> enableRule(in <span class="keywordtype">string</span> ruleId);</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="comment">         * Disable a rule.</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">         * A disabled rule will be ignored when processing events.</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment">         * @return 1 if ruleId is unknown</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="keywordtype">int</span> disableRule(in <span class="keywordtype">string</span> ruleId);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment">         * Delete a rule.</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment">         * @return 1 if ruleId is unknown</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment">         * @return 2 if the rule is not deletable</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="keywordtype">int</span> deleteRule(in <span class="keywordtype">string</span> ruleId);</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="comment">         * List all rules.</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">         * Question: will number of rules be small enough to list them</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="comment">         *           all in a single operation.</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="comment">         *           A single Rule may be quite large...</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="comment">         *           See below for alternative interface using iterator.</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        vector&lt;Rule&gt; listRules();</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        </div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="comment">/* Deliver and confirm events. */</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="comment">/* --------------------------- */</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="comment"></span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="comment">         * Deliver an event.</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment">         * @return 1 if event is unknown</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="keywordtype">int</span> deliverEvent(in <a class="code" href="structevent_1_1Event.html">Event</a> <a class="code" href="namespaceevent.html">event</a>);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">        /**</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">         * Rearm an event rule that is active.</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">         * Once a Rule triggers its actions it is done once. If the condition</span></div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">         * of the rules becomes false and back again true, no action will be</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment">         * performed unless the rule is rearmed. Rules may be auto-rearmed what</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment">         * means whenever the rule&#39;s conditions changes from false to true</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">         * actions are triggered over and again.</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">         * @return 0 if OK</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment">         * @return 1 if the rule is unknown</span></div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="comment">         * @return 2 if the rule is not enabled</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <span class="keywordtype">int</span> rearmRule(in <span class="keywordtype">string</span> ruleId);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    };</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    </div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;}</div><div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_ad56a2c825e26f9718783c4ddccd59679"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#ad56a2c825e26f9718783c4ddccd59679">event::Engine_1_0_1::Rule::actionIds</a></div><div class="ttdeci">vector&lt; string &gt; actionIds</div><div class="ttdoc">List of action IDs. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:254</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_afd2919d901073c79175795ae60dfbfb8"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afd2919d901073c79175795ae60dfbfb8">event::Engine_1_0_1::EventDesc::idComp</a></div><div class="ttdeci">string idComp</div><div class="ttdoc">Event ID component. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:80</div></div>
<div class="ttc" id="structevent_1_1Event_html_a14947f041c671d9f7127c026842609c7"><div class="ttname"><a href="structevent_1_1Event.html#a14947f041c671d9f7127c026842609c7">event::Event::id</a></div><div class="ttdeci">vector&lt; string &gt; id</div><div class="ttdoc">Event id vector. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:43</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_afd9377fa5d2fb62121666346605f5d7b"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#afd9377fa5d2fb62121666346605f5d7b">event::Engine_1_0_1::Condition::operation</a></div><div class="ttdeci">Op operation</div><div class="ttdoc">Logical operation to be applied. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:227</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html_a700034fc14da94ca0ae65450f5bd750f"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html#a700034fc14da94ca0ae65450f5bd750f">event::Engine_1_0_1::Action::arguments</a></div><div class="ttdeci">vector&lt; KeyValue &gt; arguments</div><div class="ttdoc">Action argument map. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:119</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_ab40099782628ddce56a27117623e63e2a7dd6d9fb1a6d5c55c0e8d74eed505e64"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a7dd6d9fb1a6d5c55c0e8d74eed505e64">event::Engine_1_0_1::Condition::ASSERTED</a></div><div class="ttdoc">Match if the event is asserted. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:221</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_afb477c0453959e22cba9a1a70b157995"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#afb477c0453959e22cba9a1a70b157995">event::Engine_1_0_1::Rule::isAutoRearm</a></div><div class="ttdeci">boolean isAutoRearm</div><div class="ttdoc">true for auto-rearming rules </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:251</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_afb4e2d50f9fe4c66103b375f4467158cab4cbf8942eb4fb0befd300d2c43310f4"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158cab4cbf8942eb4fb0befd300d2c43310f4">event::Engine_1_0_1::EventDesc::DYN_NODE</a></div><div class="ttdoc">Dynamic node. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:73</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_afb4e2d50f9fe4c66103b375f4467158c"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158c">event::Engine_1_0_1::EventDesc::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Event descriptor type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:71</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html_a8608c595355ed5ad9bee82ccb13fa18e"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html#a8608c595355ed5ad9bee82ccb13fa18e">event::Engine_1_0_1::Action::name</a></div><div class="ttdeci">string name</div><div class="ttdoc">User-defined name. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:116</div></div>
<div class="ttc" id="structevent_1_1Event_html_ab0097147891d5e151152dd7f65f9c8e1"><div class="ttname"><a href="structevent_1_1Event.html#ab0097147891d5e151152dd7f65f9c8e1">event::Event::type</a></div><div class="ttdeci">Type type</div><div class="ttdoc">Event type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:42</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html_a7d469d8a261519c06c4cc3762083d3b8"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html#a7d469d8a261519c06c4cc3762083d3b8">event::Engine_1_0_1::Action::id</a></div><div class="ttdeci">string id</div><div class="ttdoc">Action ID. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:115</div></div>
<div class="ttc" id="structevent_1_1KeyValue_html_af703cfeeef900c5a393fbe23c54aaa39"><div class="ttname"><a href="structevent_1_1KeyValue.html#af703cfeeef900c5a393fbe23c54aaa39">event::KeyValue::value</a></div><div class="ttdeci">string value</div><div class="ttdoc">Value. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:20</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_af536b5de4c498a3df3a6c76747e5165b"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#af536b5de4c498a3df3a6c76747e5165b">event::Engine_1_0_1::Condition::conditions</a></div><div class="ttdeci">vector&lt; Condition &gt; conditions</div><div class="ttdoc">List of subordinate conditions. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:230</div></div>
<div class="ttc" id="structevent_1_1Event_html_a3562b6ee4c47d93d383559286be33174"><div class="ttname"><a href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174">event::Event::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Event type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:37</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_aeb6dfbf4d31acf79fc27bec36d6c9754a2f72bf2984e3886de18a5d5349b0b0ec"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a2f72bf2984e3886de18a5d5349b0b0ec">event::Engine_1_0_1::Condition::AND</a></div><div class="ttdoc">Logical And. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:214</div></div>
<div class="ttc" id="structevent_1_1Event_html_a32d585239f5cdaf6d8df3284f477063e"><div class="ttname"><a href="structevent_1_1Event.html#a32d585239f5cdaf6d8df3284f477063e">event::Event::timeStamp</a></div><div class="ttdeci">time timeStamp</div><div class="ttdoc">Timestamp. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:45</div></div>
<div class="ttc" id="structevent_1_1Event_html_a3562b6ee4c47d93d383559286be33174acca8de5e142b1f1061513471c60c3e1a"><div class="ttname"><a href="structevent_1_1Event.html#a3562b6ee4c47d93d383559286be33174acca8de5e142b1f1061513471c60c3e1a">event::Event::STATE</a></div><div class="ttdoc">State event. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:38</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_aa10c1b556ed706aa0221850adbcb1d85"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#aa10c1b556ed706aa0221850adbcb1d85">event::Engine_1_0_1::Rule::name</a></div><div class="ttdeci">string name</div><div class="ttdoc">User-defined name. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:248</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_a0f39a696c703b31ef17a348e2f751752"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0f39a696c703b31ef17a348e2f751752">event::Engine_1_0_1::Rule::id</a></div><div class="ttdeci">string id</div><div class="ttdoc">Rule ID. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:247</div></div>
<div class="ttc" id="structevent_1_1Event_html"><div class="ttname"><a href="structevent_1_1Event.html">event::Event</a></div><div class="ttdoc">Event has a type: a STATE event indicates that a boolean state has been changed, i.e. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:34</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_aeb6dfbf4d31acf79fc27bec36d6c9754a7d4e071daf103b1ee04f297ea8bae110"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754a7d4e071daf103b1ee04f297ea8bae110">event::Engine_1_0_1::Condition::OR</a></div><div class="ttdoc">Logical Or. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:215</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_a2742c06bab1250e80db4e91daa9b342d"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#a2742c06bab1250e80db4e91daa9b342d">event::Engine_1_0_1::Condition::matchType</a></div><div class="ttdeci">MatchType matchType</div><div class="ttdoc">Match type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:228</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_aec4279eda555eccb432fd1607b27fd05"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#aec4279eda555eccb432fd1607b27fd05">event::Engine_1_0_1::Rule::hasMatched</a></div><div class="ttdeci">boolean hasMatched</div><div class="ttdoc">true if the rule has matched since being armed </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:252</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_a8bead4ae0e20e85b7c22b0e0bcc4d277"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#a8bead4ae0e20e85b7c22b0e0bcc4d277">event::Engine_1_0_1::Rule::isSystem</a></div><div class="ttdeci">boolean isSystem</div><div class="ttdoc">true for system-defined rules </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:249</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_acd123580e8b2870c5c40f13569257adf"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#acd123580e8b2870c5c40f13569257adf">event::Engine_1_0_1::EventDesc::dynNodeContext</a></div><div class="ttdeci">string dynNodeContext</div><div class="ttdoc">Dynamic node context. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:79</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_a73c208c6f2d958d78e88bf9c80a2dff9"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#a73c208c6f2d958d78e88bf9c80a2dff9">event::Engine_1_0_1::Condition::negate</a></div><div class="ttdeci">boolean negate</div><div class="ttdoc">Negate the result. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:226</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html">event::Engine_1_0_1::Condition</a></div><div class="ttdoc">Condition is a logical combination of multiple events. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:210</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_adeb402d765bbf0db6f132fd2669aad82"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#adeb402d765bbf0db6f132fd2669aad82">event::Engine_1_0_1::Rule::condition</a></div><div class="ttdeci">Condition condition</div><div class="ttdoc">Trigger condition. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:253</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_aa8085b63fbbbfd736b4e716b276c4235"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#aa8085b63fbbbfd736b4e716b276c4235">event::Engine_1_0_1::EventDesc::eventDescType</a></div><div class="ttdeci">Type eventDescType</div><div class="ttdoc">Event descriptor type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:77</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_abf79edba461a3ea37c9b19c27807c08e"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#abf79edba461a3ea37c9b19c27807c08e">event::Engine_1_0_1::EventDesc::entries</a></div><div class="ttdeci">vector&lt; EventDesc &gt; entries</div><div class="ttdoc">Child nodes. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:82</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_ab40099782628ddce56a27117623e63e2"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2">event::Engine_1_0_1::Condition::MatchType</a></div><div class="ttdeci">MatchType</div><div class="ttdoc">the match type how to match the event assertion state </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:220</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_a0e8529134b92584f488eb0cdec2e7dbe"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0e8529134b92584f488eb0cdec2e7dbe">event::Engine_1_0_1::Rule::arguments</a></div><div class="ttdeci">vector&lt; KeyValue &gt; arguments</div><div class="ttdoc">Argument map. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:255</div></div>
<div class="ttc" id="structevent_1_1Event_html_a52ecef47b99cc925d14b03b0798a505a"><div class="ttname"><a href="structevent_1_1Event.html#a52ecef47b99cc925d14b03b0798a505a">event::Event::context</a></div><div class="ttdeci">vector&lt; KeyValue &gt; context</div><div class="ttdoc">Context map. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:46</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_aeb6dfbf4d31acf79fc27bec36d6c9754"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#aeb6dfbf4d31acf79fc27bec36d6c9754">event::Engine_1_0_1::Condition::Op</a></div><div class="ttdeci">Op</div><div class="ttdoc">logical operation to be applied over all conditions and event </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:213</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_a9b19d4912cff140c536daf4411329bf5"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a9b19d4912cff140c536daf4411329bf5">event::Engine_1_0_1::EventDesc::name</a></div><div class="ttdeci">string name</div><div class="ttdoc">User-defined name. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:81</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_ab40099782628ddce56a27117623e63e2a98b3bf9d3af11f4d2698085e9c4ffb1e"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#ab40099782628ddce56a27117623e63e2a98b3bf9d3af11f4d2698085e9c4ffb1e">event::Engine_1_0_1::Condition::DEASSERTED</a></div><div class="ttdoc">Match if the event is deasserted. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:222</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Condition_html_a76a0324ce8c42cc5d0faeaef581b6df7"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Condition.html#a76a0324ce8c42cc5d0faeaef581b6df7">event::Engine_1_0_1::Condition::eventId</a></div><div class="ttdeci">vector&lt; string &gt; eventId</div><div class="ttdoc">Event ID. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:229</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html_a0195bf5c708cd8b753e35dfdfc559311"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html#a0195bf5c708cd8b753e35dfdfc559311">event::Engine_1_0_1::Rule::isEnabled</a></div><div class="ttdeci">boolean isEnabled</div><div class="ttdoc">true if the rule is enabled </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:250</div></div>
<div class="ttc" id="structevent_1_1KeyValue_html"><div class="ttname"><a href="structevent_1_1KeyValue.html">event::KeyValue</a></div><div class="ttdoc">Helper that is used wherever key/value pairs are required. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:18</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html_a1c9e1341e298f287e2bc7ff0dad8bfe1"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html#a1c9e1341e298f287e2bc7ff0dad8bfe1">event::Engine_1_0_1::Action::type</a></div><div class="ttdeci">string type</div><div class="ttdoc">Action type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:118</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_afb4e2d50f9fe4c66103b375f4467158ca91055098c40a949c2d0f3e6cf6550332"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#afb4e2d50f9fe4c66103b375f4467158ca91055098c40a949c2d0f3e6cf6550332">event::Engine_1_0_1::EventDesc::NODE</a></div><div class="ttdoc">Intermediate node. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:72</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html">event::Engine_1_0_1::EventDesc</a></div><div class="ttdoc">An event descriptor. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:68</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html">event::Engine_1_0_1::Action</a></div><div class="ttdoc">An action is a tuple of &amp;#39;id&amp;#39; (unique within the scope of this event engine), &amp;#39;name&amp;#39; which is unique a...</div><div class="ttdef"><b>Definition:</b> EventEngine.idl:114</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Rule_html"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Rule.html">event::Engine_1_0_1::Rule</a></div><div class="ttdoc">A Rule binds an action to a condition. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:246</div></div>
<div class="ttc" id="interfaceevent_1_1Engine__1__0__1_html"><div class="ttname"><a href="interfaceevent_1_1Engine__1__0__1.html">event::Engine_1_0_1</a></div><div class="ttdoc">There is a single event engine instance reachable by a well known reference. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:53</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1EventDesc_html_a43cb95a3886740fc2b2dfbba3c08ce96"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1EventDesc.html#a43cb95a3886740fc2b2dfbba3c08ce96">event::Engine_1_0_1::EventDesc::eventType</a></div><div class="ttdeci">Event::Type eventType</div><div class="ttdoc">Event type. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:78</div></div>
<div class="ttc" id="structevent_1_1Event_html_a882750d2b59c596ba94141e943c86e66"><div class="ttname"><a href="structevent_1_1Event.html#a882750d2b59c596ba94141e943c86e66">event::Event::asserted</a></div><div class="ttdeci">boolean asserted</div><div class="ttdoc">Assertion value. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:44</div></div>
<div class="ttc" id="structevent_1_1KeyValue_html_acd87ebf7db1fadbae86c4e230cd40f9e"><div class="ttname"><a href="structevent_1_1KeyValue.html#acd87ebf7db1fadbae86c4e230cd40f9e">event::KeyValue::key</a></div><div class="ttdeci">string key</div><div class="ttdoc">Key. </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:19</div></div>
<div class="ttc" id="structevent_1_1Engine__1__0__1_1_1Action_html_aa0649f1cce90a3649d6201520ce72f08"><div class="ttname"><a href="structevent_1_1Engine__1__0__1_1_1Action.html#aa0649f1cce90a3649d6201520ce72f08">event::Engine_1_0_1::Action::isSystem</a></div><div class="ttdeci">boolean isSystem</div><div class="ttdoc">true for system-defined actions </div><div class="ttdef"><b>Definition:</b> EventEngine.idl:117</div></div>
<div class="ttc" id="namespaceevent_html"><div class="ttname"><a href="namespaceevent.html">event</a></div><div class="ttdoc">Event interface. </div><div class="ttdef"><b>Definition:</b> AlarmManager.idl:12</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Aug 21 2020 10:20:37 for Raritan PX2/PX3 JSON-RPC API by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>