/usr/share/titan/help/info/trigger.html is in eclipse-titan 6.3.1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | <!--
Copyright (c) 2000-2017 Ericsson Telecom AB
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Baji, Laszlo
Balasko, Jeno
Farkas, Laszlo
Szabados, Kristof
Szabo, Janos Zoltan – initial implementation
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>trigger</title>
</head>
<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
<tr>
<td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
</tr>
</table>
<table border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
<td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
<td><a href="to.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
<td><a href="true.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr>
<h1>trigger</h1>
<hr align="left" width="75%">
<p>The asynchronous operation belongs to the family of message-based communication operations. It is used to receive a value from an incoming message port queue. When the first message in the
queue matches the criteria described in the value part, the operation works exactly as described under the keyword <a href="receive.html"><b><font face="Courier New"
color="#003258" size="4">receive</font></b></a>, otherwise the message is discarded.
<ul>
<li>The operation can be used on connected ports only.</li>
<li>The operation has blocking semantics (except when used within an alt statement!) i.e., the TTCN3 program execution is halted until a message arrives.</li>
<li>The operation examines the 1st message on the port queue, extracts this and discards the message unless it matches the receiving template</li>
<li>In case of multiple connections the operation may be restricted to a certain sender.</li>
<li>The received value and the address of the sender may be stored.</li>
</ul>
<p>Related keywords:</p>
<ul>
<li><a href="address.html"><b><font face="Courier New" color="#003258" size="4">address</font></b></a></li>
<li><a href="any.html"><b><font face="Courier New" color="#003258" size="4">any</font></b></a></li>
<li><a href="create.html"><b><font face="Courier New" color="#003258" size="4">create</font></b></a></li>
<li><a href="from.html"><b><font face="Courier New" color="#003258" size="4">from</font></b></a></li>
<li><a href="modifies.html"><b><font face="Courier New" color="#003258" size="4">modifies</font></b></a></li>
<li><a href="receive.html"><b><font face="Courier New" color="#003258" size="4">receive</font></b></a></li>
<li><a href="sender.html"><b><font face="Courier New" color="#003258" size="4">sender</font></b></a></li>
<li><a href="system.html"><b><font face="Courier New" color="#003258" size="4">system</font></b></a></li>
<li><a href="value.html"><b><font face="Courier New" color="#003258" size="4">value</font></b></a></li>
</ul>
<hr align="left" width="50%">
<div align="center">
<center>
<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
<tr>
<td width="100%">
<h3 align="center"><i>port_reference</i><font face="Courier New" color="#003258" size="5"><b>.trigger </b></font>[ <font face="Courier New" color="#003258" size="5"><b> (</b></font><i>
value_part </i><font face="Courier New" color="#003258" size="5"><b>)</b></font> ] [ <font face="Courier New" color="#003258" size="5"><b>from </b></font><i>address_reference</i> ] [ <font
face="Courier New" color="#003258" size="5"><b>-> </b></font><i>assignment_part</i> ]<font face="Courier New" color="#003258" size="5"><b>;</b></font> </h3>
</td>
</tr>
</table>
</center>
</div>
<ul>
<li>
<p><i> port_reference</i> points out the incoming message port.</p>
</li>
<ul>
<li>
<p>the keywords <b><font face="Courier New" color="#003258" size="4">any port</font> </b> may be used to indicate that messages from any port will be accepted (see the <a href="#Example 7:">example
7</a>).</p>
</li>
</ul>
<li>
<p>The <b><font face="Courier New" color="#003258" size="4">trigger</font> </b>keyword introduces the message reception.</p>
</li>
<li>
<p><i>value_part</i> is one of the following: (rem.: when omitted, <a href="#Example 4"> any message will be accepted</a>)</p>
<ul>
<li>a literal value, a constant, a variable, an expression. (see the <a href="#Example 1">example1</a>)</li>
<li>a value template (see the <a href="#Example 2">example 2</a>)</li>
<li>a modified template (see the <a href="#Example 3">example 3</a>)<br>
</li>
</ul>
</li>
<table border="0" width="100%" bgcolor="#C9C2BB" cellpadding="4">
<tr>
<td width="100%">
<p><u>TITAN specific restriction compared to the standard:</u></p>
<ul>
<li>
<p> modified template is not implemented. When encountered in the TTCN-3 program, an error message will be generated.</p>
</li>
</ul>
</td>
</tr>
</table>
<li>
<p>The optional <b><font face="Courier New" color="#003258" size="4">from</font> </b> keyword is used when a port is connected to several entities and restriction to one communication partner is
required.</p>
</li>
</ul>
<ul>
<li>
<p><i>address_reference</i> is one of the following:</p>
<ul>
<li>a component reference (cf. <a href="create.html"><b><font face="Courier New" color="#003258" size="4">create</font></b></a>) or the keyword <a href="system.html"
target="_blank"><b><font face="Courier New" color="#003258" size="4">system</font></b></a>, in case of one-to-many connections.</li>
<li>
<p>an address reference (cf. <a href="address.html"><b><font face="Courier New" color="#003258" size="4">address</font></b></a>) , when there are several entities within the
system under test .</p>
</li>
</ul>
</li>
<li>
<p><i>assignment_part</i> is one or both of the following:</p>
<ul>
<li>the <a href="sender.html"><b><font face="Courier New" color="#003258" size="4">sender</font></b></a> keyword followed by a variable of <a href="address.html"
target="_blank"><b><font face="Courier New" color="#003258" size="4">address</font></b></a> or <a href="component.html"><b><font face="Courier New" color="#003258"
size="4">component</font></b></a> type to store the address of the sender (see the <a href="#Example 5">example 5</a>).</li>
<li>the <a href="value.html"><b><font face="Courier New" color="#003258" size="4">value</font></b></a> keyword followed by a variable of the same type as the received message
to store the received value (see the <a href="#Example 6:">example 6</a>).</li>
</ul>
</li>
</ul>
<hr align="left" width="50%">
<p><a name="Example 1">Example 1</a>: literal value
<p><font face="Courier New">portibus_PCO.trigger (charstring:"abl") from system;</font>
<p>The character string abl is accepted over the port portibus_PCO from the test system interface. The port is connected to several components.</p>
<hr align="left" width="50%">
<p><a name="Example 2">Example 2</a>: template</p>
<p><font face="Courier New">portibus_PCO.trigger (tr_MeiTemplate));</font></p>
<p>The template (tr_MeiTemplate) determines what kind of messages will be accepted.</p>
<hr align="left" width="50%">
<p><a name="Example 3">Example 3</a>: modified template</p>
<p><font face="Courier New">portibus_PCO.trigger (modifies tr_MeiTemplate := {field1 := false});</font></p>
<p>The modified template (tr_MeiTemplate) determines what kind of messages will be accepted.</p>
<hr align="left" width="50%">
<p><a name="Example 4">Example 4</a>: any message reception</p>
<p><font face="Courier New">portibus_PCO.trigger;</font></p>
<p>Any message on port portibus_PCO will be accepted.</p>
<hr align="left" width="50%">
<p><a name="Example 5">Example 5</a>: storing the sender address</p>
<p><font face="Courier New">portibus_PCO.trigger (tr_MeiTemplate)) -> sender v_address;</font></p>
<p>The address of the sender is stored in the variable v_address.</p>
<hr align="left" width="50%">
<p><a name="Example 6:">Example 6:</a> storing the received value</p>
<p><font face="Courier New">portibus_PCO.trigger (tr_MeiTemplate)) -> value v_ReceivedMessage;</font></p>
<p>The received message is saved in the variable v_ReceivedMessage.</p>
<hr align="left" width="50%">
<p><a name="Example 7:">Example 7:</a> receive on any port</p>
<p><font face="Courier New">any port.trigger (tr_MeiTemplate)) -> value v_ReceivedMessage;</font></p>
<p>The message matching the template tr_MeiTemplate and received on any port is saved to the variable v_ReceivedMessage.</p>
<hr align="left" width="25%">
<hr align="left" width="25%">
<p><a HREF="BNF.html#triggerstatement">BNF definition</a> of <font face="Courier New"> trigger</font></p>
</body>
</html>
|