Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Haug2015-06-30 18:10:22 +0000
committerJuergen Haug2015-06-30 18:11:15 +0000
commitf7439c472f9d6a309af4a2a6d6628a21a2ad8b76 (patch)
treedd1bdcf2517f96be31b86ee2c38ac35053ff99f6 /plugins/org.eclipse.etrice.doc/html
parent1a6ebb9dab8f1e99bbaa72434deca2a6267538b5 (diff)
downloadorg.eclipse.etrice-f7439c472f9d6a309af4a2a6d6628a21a2ad8b76.tar.gz
org.eclipse.etrice-f7439c472f9d6a309af4a2a6d6628a21a2ad8b76.tar.xz
org.eclipse.etrice-f7439c472f9d6a309af4a2a6d6628a21a2ad8b76.zip
[doc] added context help + prepared hover help + more reference content
Diffstat (limited to 'plugins/org.eclipse.etrice.doc/html')
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-doc.html68
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch1.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch2.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch3.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch4.html127
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch5.html76
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch6.html76
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch7.html52
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch8.html40
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docli1.html398
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse1.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse10.html914
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse11.html1086
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse12.html790
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse13.html144
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse14.html1005
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse15.html422
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse16.html499
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse17.html486
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse18.html115
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse19.html2759
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse2.html6
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse20.html450
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse21.html1033
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse22.html513
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse23.html1425
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse24.html8462
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse25.html804
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse26.html3051
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse27.html599
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse28.html634
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse3.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse4.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse5.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse6.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse7.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse8.html4
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse9.html2
38 files changed, 19205 insertions, 6853 deletions
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
index b85484bde..88822babb 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -38,7 +38,7 @@ class="ec-lmss-12">e</span><span
class="ec-lmss-12">Trice</span> <span
class="ec-lmss-12">committers and contributors</span>
</p><!--l. 80--><p class="noindent" ><span
-class="ec-lmss-12">June 26, 2015</span>
+class="ec-lmss-12">June 30, 2015</span>
</p>
</div>
@@ -75,67 +75,53 @@ href="etrice-docch3.html#x14-670003" id="QQ2-14-88">Standalone Generators</a></s
<br /><span class="chapterToc" >4 <a
href="etrice-docch4.html#x15-680004" id="QQ2-15-89">Examples</a></span>
<br />&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse10.html#x16-690001" id="QQ2-16-90">Dynamic Actors 1</a></span>
+href="etrice-docse10.html#x16-690001" id="QQ2-16-90">The C examples project</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse11.html#x17-730002" id="QQ2-17-96">Dynamic Actors 2</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.3 <a
-href="etrice-docse12.html#x18-770003" id="QQ2-18-101">Dynamic Actors 3</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.4 <a
-href="etrice-docse13.html#x19-810004" id="QQ2-19-105">Dynamic Actors 4</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.5 <a
-href="etrice-docse14.html#x20-850005" id="QQ2-20-109">Dynamic Actors 5</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.6 <a
-href="etrice-docse15.html#x21-890006" id="QQ2-21-113">Dynamic Actors 6</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.7 <a
-href="etrice-docse16.html#x22-930007" id="QQ2-22-117">Dynamic Actors 7</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.8 <a
-href="etrice-docse17.html#x23-970008" id="QQ2-23-121">Dynamic Actors 8</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.9 <a
-href="etrice-docse18.html#x24-1010009" id="QQ2-24-125">Dynamic Actors 9</a></span>
+href="etrice-docse11.html#x17-860002" id="QQ2-17-107">The Java examples project</a></span>
<br /><span class="chapterToc" >5 <a
-href="etrice-docch5.html#x25-1050005" id="QQ2-25-129">ROOM Concepts</a></span>
+href="etrice-docch5.html#x18-1230005" id="QQ2-18-147">ROOM Concepts</a></span>
<br />&#x00A0;<span class="sectionToc" >5.1 <a
-href="etrice-docse19.html#x26-1060001" id="QQ2-26-130">Actors</a></span>
+href="etrice-docse12.html#x19-1240001" id="QQ2-19-148">Actors</a></span>
<br />&#x00A0;<span class="sectionToc" >5.2 <a
-href="etrice-docse20.html#x27-1140002" id="QQ2-27-143">Protocols</a></span>
+href="etrice-docse13.html#x20-1320002" id="QQ2-20-161">Protocols</a></span>
<br />&#x00A0;<span class="sectionToc" >5.3 <a
-href="etrice-docse21.html#x28-1180003" id="QQ2-28-147">Ports</a></span>
+href="etrice-docse14.html#x21-1360003" id="QQ2-21-165">Ports</a></span>
<br />&#x00A0;<span class="sectionToc" >5.4 <a
-href="etrice-docse22.html#x29-1240004" id="QQ2-29-169">DataClass</a></span>
+href="etrice-docse15.html#x22-1420004" id="QQ2-22-187">DataClass</a></span>
<br />&#x00A0;<span class="sectionToc" >5.5 <a
-href="etrice-docse23.html#x30-1270005" id="QQ2-30-172">Layering</a></span>
+href="etrice-docse16.html#x23-1450005" id="QQ2-23-190">Layering</a></span>
<br />&#x00A0;<span class="sectionToc" >5.6 <a
-href="etrice-docse24.html#x31-1300006" id="QQ2-31-176">Finite State Machines</a></span>
+href="etrice-docse17.html#x24-1480006" id="QQ2-24-194">Finite State Machines</a></span>
<br /><span class="chapterToc" >6 <a
-href="etrice-docch6.html#x32-1370006" id="QQ2-32-191">eTrice Features</a></span>
+href="etrice-docch6.html#x25-1550006" id="QQ2-25-209">eTrice Features</a></span>
<br />&#x00A0;<span class="sectionToc" >6.1 <a
-href="etrice-docse25.html#x33-1380001" id="QQ2-33-192">Model Navigation</a></span>
+href="etrice-docse18.html#x26-1560001" id="QQ2-26-210">Model Navigation</a></span>
<br />&#x00A0;<span class="sectionToc" >6.2 <a
-href="etrice-docse26.html#x34-1430002" id="QQ2-34-197">eTrice Java Projects</a></span>
+href="etrice-docse19.html#x27-1610002" id="QQ2-27-215">eTrice Java Projects</a></span>
<br />&#x00A0;<span class="sectionToc" >6.3 <a
-href="etrice-docse27.html#x35-1470003" id="QQ2-35-203">Automatic Diagram Layout with KIELER</a></span>
+href="etrice-docse20.html#x28-1650003" id="QQ2-28-221">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;<span class="sectionToc" >6.4 <a
-href="etrice-docse28.html#x36-1580004" id="QQ2-36-224">Annotations</a></span>
+href="etrice-docse21.html#x29-1760004" id="QQ2-29-242">Annotations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.5 <a
-href="etrice-docse29.html#x37-1630005" id="QQ2-37-232">Enumerations</a></span>
+href="etrice-docse22.html#x30-1810005" id="QQ2-30-250">Enumerations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.6 <a
-href="etrice-docse30.html#x38-1640006" id="QQ2-38-234">eTrice Models and Their Relations</a></span>
+href="etrice-docse23.html#x31-1820006" id="QQ2-31-252">eTrice Models and Their Relations</a></span>
<br /><span class="chapterToc" >7 <a
-href="etrice-docch7.html#x39-1690007" id="QQ2-39-245">eTrice Reference</a></span>
-
-
+href="etrice-docch7.html#x32-1870007" id="QQ2-32-263">eTrice Reference</a></span>
<br />&#x00A0;<span class="sectionToc" >7.1 <a
-href="etrice-docse31.html#x40-1700001" id="QQ2-40-246">ROOMLanguage</a></span>
+href="etrice-docse24.html#x33-1880001" id="QQ2-33-264">ROOMLanguage</a></span>
<br />&#x00A0;<span class="sectionToc" >7.2 <a
-href="etrice-docse32.html#x41-2010002" id="QQ2-41-278">ModelEditors</a></span>
+href="etrice-docse25.html#x34-2210002" id="QQ2-34-298">ModelEditors</a></span>
<br />&#x00A0;<span class="sectionToc" >7.3 <a
-href="etrice-docse33.html#x42-2100003" id="QQ2-42-287">CodeGenerators</a></span>
+href="etrice-docse26.html#x35-2300003" id="QQ2-35-307">CodeGenerators</a></span>
<br /><span class="chapterToc" >8 <a
-href="etrice-docch8.html#x43-2160008" id="QQ2-43-293">eTrice Tool Developer&#8217;s Reference</a></span>
+href="etrice-docch8.html#x36-2360008" id="QQ2-36-313">eTrice Tool Developer&#8217;s Reference</a></span>
<br />&#x00A0;<span class="sectionToc" >8.1 <a
-href="etrice-docse34.html#x44-2170001" id="QQ2-44-294">Architecture</a></span>
+href="etrice-docse27.html#x37-2370001" id="QQ2-37-314">Architecture</a></span>
<br />&#x00A0;<span class="sectionToc" >8.2 <a
-href="etrice-docse35.html#x45-2240002" id="QQ2-45-303">Component Overview</a></span>
+href="etrice-docse28.html#x38-2440002" id="QQ2-38-323">Component Overview</a></span>
+
+
</div>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
index e54bb4562..d36c2289d 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
index eaed19683..8642007b6 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
index 92b78655b..0e386ee5d 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
index fd913342b..014e8798c 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -22,114 +22,51 @@ href="#tailetrice-docch4.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch4.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;4</span><br /><a
id="x15-680004"></a>Examples</h2>
-<!--l. 3--><p class="noindent" >Each example can be installed separately in the workspace using the new wizard.
-</p><!--l. 5--><p class="noindent" >Choose File &#x003E; New &#x003E; Other (or Ctrl-N), open category "eTrice Examples and Tutorials" and select the example you are
-interested in. Click Next and Finish and you are ready to go.
-</p><!--l. 8--><p class="noindent" >Each example comes with the source code generated already. There are also launch configurations for code
-generation.
+<!--l. 3--><p class="noindent" >The eTriceexamples can be installed using the new wizard.
+</p><!--l. 5--><p class="noindent" >Choose File &#x003E; New &#x003E; Other (or Ctrl-N), open category "eTrice". There are examples for C and for Java. Each of them
+consists of a single Eclipse project that contains several examples which are described in the next sections. Select the desired
+one, click Next and Finish and you are ready to go.
+</p><!--l. 11--><p class="noindent" >As already mentioned each example project contains several examples. Each of them comes with a room model, a
+mapping model a launch configuration for the code generation and a launch configuration to run the compiled
+example.
<a
id="x15-68001r80"></a>
</p>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse10.html#x16-690001">Dynamic Actors 1</a></span>
+href="etrice-docse10.html#x16-690001">The C examples project</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.1 <a
-href="etrice-docse10.html#x16-700001">Purpose</a></span>
+href="etrice-docse10.html#x16-700001">Traffic light - step 1</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.2 <a
-href="etrice-docse10.html#x16-710002">Details</a></span>
+href="etrice-docse10.html#x16-740002">Traffic light - step 2</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.3 <a
-href="etrice-docse10.html#x16-720003">Noteworthy</a></span>
+href="etrice-docse10.html#x16-780003">Traffic light - step 3</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.4 <a
+href="etrice-docse10.html#x16-820004">Traffic light - step 4</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse11.html#x17-730002">Dynamic Actors 2</a></span>
+href="etrice-docse11.html#x17-860002">The Java examples project</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.1 <a
-href="etrice-docse11.html#x17-740001">Purpose</a></span>
+href="etrice-docse11.html#x17-870001">Dynamic Actors 1</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.2 <a
-href="etrice-docse11.html#x17-750002">Details</a></span>
+href="etrice-docse11.html#x17-910002">Dynamic Actors 2</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.3 <a
-href="etrice-docse11.html#x17-760003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.3 <a
-href="etrice-docse12.html#x18-770003">Dynamic Actors 3</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.1 <a
-href="etrice-docse12.html#x18-780001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.2 <a
-href="etrice-docse12.html#x18-790002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.3 <a
-href="etrice-docse12.html#x18-800003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.4 <a
-href="etrice-docse13.html#x19-810004">Dynamic Actors 4</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.1 <a
-href="etrice-docse13.html#x19-820001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.2 <a
-href="etrice-docse13.html#x19-830002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.3 <a
-href="etrice-docse13.html#x19-840003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.5 <a
-href="etrice-docse14.html#x20-850005">Dynamic Actors 5</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.1 <a
-href="etrice-docse14.html#x20-860001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.2 <a
-href="etrice-docse14.html#x20-870002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.3 <a
-href="etrice-docse14.html#x20-880003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.6 <a
-href="etrice-docse15.html#x21-890006">Dynamic Actors 6</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.1 <a
-href="etrice-docse15.html#x21-900001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.2 <a
-href="etrice-docse15.html#x21-910002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.3 <a
-href="etrice-docse15.html#x21-920003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.7 <a
-href="etrice-docse16.html#x22-930007">Dynamic Actors 7</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.1 <a
-href="etrice-docse16.html#x22-940001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.2 <a
-href="etrice-docse16.html#x22-950002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.3 <a
-href="etrice-docse16.html#x22-960003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.8 <a
-href="etrice-docse17.html#x23-970008">Dynamic Actors 8</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.1 <a
-href="etrice-docse17.html#x23-980001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.2 <a
-href="etrice-docse17.html#x23-990002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.3 <a
-href="etrice-docse17.html#x23-1000003">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.9 <a
-href="etrice-docse18.html#x24-1010009">Dynamic Actors 9</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.1 <a
-href="etrice-docse18.html#x24-1020001">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.2 <a
-href="etrice-docse18.html#x24-1030002">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.3 <a
-href="etrice-docse18.html#x24-1040003">Noteworthy</a></span>
-
-
+href="etrice-docse11.html#x17-950003">Dynamic Actors 3</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.4 <a
+href="etrice-docse11.html#x17-990004">Dynamic Actors 4</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.5 <a
+href="etrice-docse11.html#x17-1030005">Dynamic Actors 5</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.6 <a
+href="etrice-docse11.html#x17-1070006">Dynamic Actors 6</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.7 <a
+href="etrice-docse11.html#x17-1110007">Dynamic Actors 7</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.8 <a
+href="etrice-docse11.html#x17-1150008">Dynamic Actors 8</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.9 <a
+href="etrice-docse11.html#x17-1190009">Dynamic Actors 9</a></span>
</div>
<a
- id="x15-72001r90"></a>
-
-<a
- id="x15-76001r96"></a>
-
-<a
- id="x15-80001r101"></a>
-
-<a
- id="x15-84001r105"></a>
-
-<a
- id="x15-88001r109"></a>
-
-<a
- id="x15-92001r113"></a>
-
-<a
- id="x15-96001r117"></a>
-
-<a
- id="x15-100001r121"></a>
+ id="x15-85001r90"></a>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse10.html" >next</a>] [<a
href="etrice-docch3.html" >prev</a>] [<a
@@ -137,5 +74,5 @@ href="etrice-docch3.html#tailetrice-docch3.html" >prev-tail</a>] [<a
href="etrice-docch4.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch4.html" >up</a>] </p></div>
<!--l. 1--><p class="noindent" ><a
- id="tailetrice-docch4.html"></a> </p>
+ id="tailetrice-docch4.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
index cb5eecb01..9c3b30b68 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
@@ -10,98 +10,98 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse19.html" >next</a>] [<a
-href="etrice-docse18.html" >prev</a>] [<a
-href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
+href="etrice-docse12.html" >next</a>] [<a
+href="etrice-docse11.html" >prev</a>] [<a
+href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
href="#tailetrice-docch5.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch5.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;5</span><br /><a
- id="x25-1050005"></a>ROOM Concepts</h2>
+ id="x18-1230005"></a>ROOM Concepts</h2>
<!--l. 4--><p class="noindent" >This chapter gives an overview over the ROOM language elements and their textual and graphical
notation. The formal ROOM grammar based on Xtext (EBNF) you can find in the eTrice repository:
<a
href="http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/plain/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext" class="url" ><span
class="ec-lmtt-10">http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/plain/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext</span></a>
<a
- id="x25-105001r125"></a>
+ id="x18-123001r107"></a>
</p>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >5.1 <a
-href="etrice-docse19.html#x26-1060001">Actors</a></span>
+href="etrice-docse12.html#x19-1240001">Actors</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.1 <a
-href="etrice-docse19.html#x26-1070001">Description</a></span>
+href="etrice-docse12.html#x19-1250001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.2 <a
-href="etrice-docse19.html#x26-1080002">Motivation</a></span>
+href="etrice-docse12.html#x19-1260002">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.3 <a
-href="etrice-docse19.html#x26-1090003">Notation</a></span>
+href="etrice-docse12.html#x19-1270003">Notation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.4 <a
-href="etrice-docse19.html#x26-1100004">Details</a></span>
+href="etrice-docse12.html#x19-1280004">Details</a></span>
<br />&#x00A0;<span class="sectionToc" >5.2 <a
-href="etrice-docse20.html#x27-1140002">Protocols</a></span>
+href="etrice-docse13.html#x20-1320002">Protocols</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.1 <a
-href="etrice-docse20.html#x27-1150001">Description</a></span>
+href="etrice-docse13.html#x20-1330001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.2 <a
-href="etrice-docse20.html#x27-1160002">Motivation</a></span>
+href="etrice-docse13.html#x20-1340002">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.3 <a
-href="etrice-docse20.html#x27-1170003">Notation</a></span>
+href="etrice-docse13.html#x20-1350003">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.3 <a
-href="etrice-docse21.html#x28-1180003">Ports</a></span>
+href="etrice-docse14.html#x21-1360003">Ports</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.1 <a
-href="etrice-docse21.html#x28-1190001">Description</a></span>
+href="etrice-docse14.html#x21-1370001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.2 <a
-href="etrice-docse21.html#x28-1200002">Motivation</a></span>
+href="etrice-docse14.html#x21-1380002">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.3 <a
-href="etrice-docse21.html#x28-1210003">Notation</a></span>
+href="etrice-docse14.html#x21-1390003">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.4 <a
-href="etrice-docse22.html#x29-1240004">DataClass</a></span>
+href="etrice-docse15.html#x22-1420004">DataClass</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.4.1 <a
-href="etrice-docse22.html#x29-1250001">Description</a></span>
+href="etrice-docse15.html#x22-1430001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.4.2 <a
-href="etrice-docse22.html#x29-1260002">Notation</a></span>
+href="etrice-docse15.html#x22-1440002">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.5 <a
-href="etrice-docse23.html#x30-1270005">Layering</a></span>
+href="etrice-docse16.html#x23-1450005">Layering</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.5.1 <a
-href="etrice-docse23.html#x30-1280001">Description</a></span>
+href="etrice-docse16.html#x23-1460001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.5.2 <a
-href="etrice-docse23.html#x30-1290002">Notation</a></span>
+href="etrice-docse16.html#x23-1470002">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.6 <a
-href="etrice-docse24.html#x31-1300006">Finite State Machines</a></span>
+href="etrice-docse17.html#x24-1480006">Finite State Machines</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.1 <a
-href="etrice-docse24.html#x31-1310001">Description</a></span>
+href="etrice-docse17.html#x24-1490001">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.2 <a
-href="etrice-docse24.html#x31-1320002">Motivation</a></span>
+href="etrice-docse17.html#x24-1500002">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.3 <a
-href="etrice-docse24.html#x31-1330003">Notation</a></span>
+href="etrice-docse17.html#x24-1510003">Notation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.4 <a
-href="etrice-docse24.html#x31-1360004">Examples</a></span>
+href="etrice-docse17.html#x24-1540004">Examples</a></span>
</div>
<a
- id="x25-113021r130"></a>
+ id="x18-131021r148"></a>
<a
- id="x25-117011r143"></a>
+ id="x18-135011r161"></a>
<a
- id="x25-123002r147"></a>
+ id="x18-141002r165"></a>
<a
- id="x25-126031r169"></a>
+ id="x18-144031r187"></a>
<a
- id="x25-129043r172"></a>
+ id="x18-147043r190"></a>
<!--l. 106--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse19.html" >next</a>] [<a
-href="etrice-docse18.html" >prev</a>] [<a
-href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
+href="etrice-docse12.html" >next</a>] [<a
+href="etrice-docse11.html" >prev</a>] [<a
+href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
href="etrice-docch5.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch5.html" >up</a>] </p></div>
<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
index f1c360715..14a86d1b1 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
@@ -10,91 +10,91 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 106--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse25.html" >next</a>] [<a
-href="etrice-docse24.html" >prev</a>] [<a
-href="etrice-docse24.html#tailetrice-docse24.html" >prev-tail</a>] [<a
+href="etrice-docse18.html" >next</a>] [<a
+href="etrice-docse17.html" >prev</a>] [<a
+href="etrice-docse17.html#tailetrice-docse17.html" >prev-tail</a>] [<a
href="#tailetrice-docch6.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch6.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;6</span><br /><a
- id="x32-1370006"></a>eTrice Features</h2>
+ id="x25-1550006"></a>eTrice Features</h2>
<a
- id="x32-137001r176"></a>
+ id="x25-155001r194"></a>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >6.1 <a
-href="etrice-docse25.html#x33-1380001">Model Navigation</a></span>
+href="etrice-docse18.html#x26-1560001">Model Navigation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.1 <a
-href="etrice-docse25.html#x33-1390001">From Model to Behavior to Structure</a></span>
+href="etrice-docse18.html#x26-1570001">From Model to Behavior to Structure</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.2 <a
-href="etrice-docse25.html#x33-1400002">Model Navigation</a></span>
+href="etrice-docse18.html#x26-1580002">Model Navigation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.3 <a
-href="etrice-docse25.html#x33-1410003">Navigating Behavior Diagrams</a></span>
+href="etrice-docse18.html#x26-1590003">Navigating Behavior Diagrams</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.4 <a
-href="etrice-docse25.html#x33-1420004">Navigating Structure Diagrams</a></span>
+href="etrice-docse18.html#x26-1600004">Navigating Structure Diagrams</a></span>
<br />&#x00A0;<span class="sectionToc" >6.2 <a
-href="etrice-docse26.html#x34-1430002">eTrice Java Projects</a></span>
+href="etrice-docse19.html#x27-1610002">eTrice Java Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.1 <a
-href="etrice-docse26.html#x34-1440001">Eclipse JDT Build</a></span>
+href="etrice-docse19.html#x27-1620001">Eclipse JDT Build</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.2 <a
-href="etrice-docse26.html#x34-1450002">Maven Build</a></span>
+href="etrice-docse19.html#x27-1630002">Maven Build</a></span>
<br />&#x00A0;<span class="sectionToc" >6.3 <a
-href="etrice-docse27.html#x35-1470003">Automatic Diagram Layout with KIELER</a></span>
+href="etrice-docse20.html#x28-1650003">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.1 <a
-href="etrice-docse27.html#x35-1480001">Overview</a></span>
+href="etrice-docse20.html#x28-1660001">Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.2 <a
-href="etrice-docse27.html#x35-1490002">Performing Automatic Layout</a></span>
+href="etrice-docse20.html#x28-1670002">Performing Automatic Layout</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.3 <a
-href="etrice-docse27.html#x35-1500003">Layout Options</a></span>
+href="etrice-docse20.html#x28-1680003">Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.4 <a
-href="etrice-docse27.html#x35-1510004">Configuring Layout Options</a></span>
+href="etrice-docse20.html#x28-1690004">Configuring Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.5 <a
-href="etrice-docse27.html#x35-1540005">Special Layout Options</a></span>
+href="etrice-docse20.html#x28-1720005">Special Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.6 <a
-href="etrice-docse27.html#x35-1570006">Further References</a></span>
+href="etrice-docse20.html#x28-1750006">Further References</a></span>
<br />&#x00A0;<span class="sectionToc" >6.4 <a
-href="etrice-docse28.html#x36-1580004">Annotations</a></span>
+href="etrice-docse21.html#x29-1760004">Annotations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.4.1 <a
-href="etrice-docse28.html#x36-1590001">Annotation Type Definitions</a></span>
+href="etrice-docse21.html#x29-1770001">Annotation Type Definitions</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.4.2 <a
-href="etrice-docse28.html#x36-1600002">Usage and Effect of the Pre-defined Annotations</a></span>
+href="etrice-docse21.html#x29-1780002">Usage and Effect of the Pre-defined Annotations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.5 <a
-href="etrice-docse29.html#x37-1630005">Enumerations</a></span>
+href="etrice-docse22.html#x30-1810005">Enumerations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.6 <a
-href="etrice-docse30.html#x38-1640006">eTrice Models and Their Relations</a></span>
+href="etrice-docse23.html#x31-1820006">eTrice Models and Their Relations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.1 <a
-href="etrice-docse30.html#x38-1650001">The ROOM Model</a></span>
+href="etrice-docse23.html#x31-1830001">The ROOM Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.2 <a
-href="etrice-docse30.html#x38-1660002">The Config Model</a></span>
+href="etrice-docse23.html#x31-1840002">The Config Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.3 <a
-href="etrice-docse30.html#x38-1670003">The Physical Model</a></span>
+href="etrice-docse23.html#x31-1850003">The Physical Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.4 <a
-href="etrice-docse30.html#x38-1680004">The Mapping Model</a></span>
+href="etrice-docse23.html#x31-1860004">The Mapping Model</a></span>
</div>
<a
- id="x32-142001r192"></a>
+ id="x25-160001r210"></a>
<a
- id="x32-146186r197"></a>
+ id="x25-164186r215"></a>
<a
- id="x32-157001r203"></a>
+ id="x25-175001r221"></a>
<a
- id="x32-162001r224"></a>
+ id="x25-180001r242"></a>
<a
- id="x32-163049r232"></a>
+ id="x25-181049r250"></a>
<!--l. 121--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse25.html" >next</a>] [<a
-href="etrice-docse24.html" >prev</a>] [<a
-href="etrice-docse24.html#tailetrice-docse24.html" >prev-tail</a>] [<a
+href="etrice-docse18.html" >next</a>] [<a
+href="etrice-docse17.html" >prev</a>] [<a
+href="etrice-docse17.html#tailetrice-docse17.html" >prev-tail</a>] [<a
href="etrice-docch6.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch6.html" >up</a>] </p></div>
<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html
index 853e6a279..c87e2d58e 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html
@@ -10,65 +10,65 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 121--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse31.html" >next</a>] [<a
-href="etrice-docse30.html" >prev</a>] [<a
-href="etrice-docse30.html#tailetrice-docse30.html" >prev-tail</a>] [<a
+href="etrice-docse24.html" >next</a>] [<a
+href="etrice-docse23.html" >prev</a>] [<a
+href="etrice-docse23.html#tailetrice-docse23.html" >prev-tail</a>] [<a
href="#tailetrice-docch7.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch7.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;7</span><br /><a
- id="x39-1690007"></a>eTrice Reference</h2>
+ id="x32-1870007"></a>eTrice Reference</h2>
<a
- id="x39-169001r234"></a>
+ id="x32-187001r252"></a>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >7.1 <a
-href="etrice-docse31.html#x40-1700001">ROOMLanguage</a></span>
+href="etrice-docse24.html#x33-1880001">ROOMLanguage</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.1 <a
-href="etrice-docse31.html#x40-1710001">ConfigModel</a></span>
+href="etrice-docse24.html#x33-1890001">ConfigModel</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.2 <a
-href="etrice-docse31.html#x40-1720002">LogicalModel</a></span>
+href="etrice-docse24.html#x33-1900002">LogicalModel</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.3 <a
-href="etrice-docse31.html#x40-1990003">MappingModel</a></span>
+href="etrice-docse24.html#x33-2190003">MappingModel</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.4 <a
-href="etrice-docse31.html#x40-2000004">PhysicalModel</a></span>
+href="etrice-docse24.html#x33-2200004">PhysicalModel</a></span>
<br />&#x00A0;<span class="sectionToc" >7.2 <a
-href="etrice-docse32.html#x41-2010002">ModelEditors</a></span>
+href="etrice-docse25.html#x34-2210002">ModelEditors</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.1 <a
-href="etrice-docse32.html#x41-2020001">GraphicalBehaviorEditor</a></span>
+href="etrice-docse25.html#x34-2220001">GraphicalBehaviorEditor</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.2 <a
-href="etrice-docse32.html#x41-2030002">GraphicalStructureEditor</a></span>
+href="etrice-docse25.html#x34-2230002">GraphicalStructureEditor</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.3 <a
-href="etrice-docse32.html#x41-2080003">TextualROOMEditor</a></span>
+href="etrice-docse25.html#x34-2280003">TextualROOMEditor</a></span>
<br />&#x00A0;<span class="sectionToc" >7.3 <a
-href="etrice-docse33.html#x42-2100003">CodeGenerators</a></span>
+href="etrice-docse26.html#x35-2300003">CodeGenerators</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.1 <a
-href="etrice-docse33.html#x42-2110001">CCodeGenerator</a></span>
+href="etrice-docse26.html#x35-2310001">CCodeGenerator</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.2 <a
-href="etrice-docse33.html#x42-2130002">GenerationOptions</a></span>
+href="etrice-docse26.html#x35-2330002">GenerationOptions</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.3 <a
-href="etrice-docse33.html#x42-2140003">JavaCodeGenerator</a></span>
+href="etrice-docse26.html#x35-2340003">JavaCodeGenerator</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.4 <a
-href="etrice-docse33.html#x42-2150004">MSCLogging</a></span>
+href="etrice-docse26.html#x35-2350004">MSCLogging</a></span>
</div>
<a
- id="x39-200033r246"></a>
+ id="x32-220033r264"></a>
<a
- id="x39-209002r278"></a>
+ id="x32-229002r298"></a>
<!--l. 124--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse31.html" >next</a>] [<a
-href="etrice-docse30.html" >prev</a>] [<a
-href="etrice-docse30.html#tailetrice-docse30.html" >prev-tail</a>] [<a
+href="etrice-docse24.html" >next</a>] [<a
+href="etrice-docse23.html" >prev</a>] [<a
+href="etrice-docse23.html#tailetrice-docse23.html" >prev-tail</a>] [<a
href="etrice-docch7.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch7.html" >up</a>] </p></div>
<a
- id="tailetrice-docch7.html"></a>
+ id="tailetrice-docch7.html"></a>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html
index 9057fca88..340cd3224 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html
@@ -10,52 +10,52 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 124--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse34.html" >next</a>] [<a
-href="etrice-docse33.html" >prev</a>] [<a
-href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a
+href="etrice-docse27.html" >next</a>] [<a
+href="etrice-docse26.html" >prev</a>] [<a
+href="etrice-docse26.html#tailetrice-docse26.html" >prev-tail</a>] [<a
href="#tailetrice-docch8.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch8.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;8</span><br /><a
- id="x43-2160008"></a>eTrice Tool Developer&#8217;s Reference</h2>
+ id="x36-2360008"></a>eTrice Tool Developer&#8217;s Reference</h2>
<a
- id="x43-216001r287"></a>
+ id="x36-236001r307"></a>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >8.1 <a
-href="etrice-docse34.html#x44-2170001">Architecture</a></span>
+href="etrice-docse27.html#x37-2370001">Architecture</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.1 <a
-href="etrice-docse34.html#x44-2180001">Editor and Generator Components</a></span>
+href="etrice-docse27.html#x37-2380001">Editor and Generator Components</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.2 <a
-href="etrice-docse34.html#x44-2190002">The Abstract Finite State Machine Concept</a></span>
+href="etrice-docse27.html#x37-2390002">The Abstract Finite State Machine Concept</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.3 <a
-href="etrice-docse34.html#x44-2220003">Runtimes</a></span>
+href="etrice-docse27.html#x37-2420003">Runtimes</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.4 <a
-href="etrice-docse34.html#x44-2230004">Unit Tests</a></span>
+href="etrice-docse27.html#x37-2430004">Unit Tests</a></span>
<br />&#x00A0;<span class="sectionToc" >8.2 <a
-href="etrice-docse35.html#x45-2240002">Component Overview</a></span>
+href="etrice-docse28.html#x38-2440002">Component Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.1 <a
-href="etrice-docse35.html#x45-2250001">Room Language Overview</a></span>
+href="etrice-docse28.html#x38-2450001">Room Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.2 <a
-href="etrice-docse35.html#x45-2310002">Config Language Overview</a></span>
+href="etrice-docse28.html#x38-2510002">Config Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.3 <a
-href="etrice-docse35.html#x45-2350003">Aggregation Layer Overview</a></span>
+href="etrice-docse28.html#x38-2550003">Aggregation Layer Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.4 <a
-href="etrice-docse35.html#x45-2400004">Generator Overview</a></span>
+href="etrice-docse28.html#x38-2600004">Generator Overview</a></span>
</div>
<a
- id="x43-223001r294"></a>
+ id="x36-243001r314"></a>
<!--l. 128--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse34.html" >next</a>] [<a
-href="etrice-docse33.html" >prev</a>] [<a
-href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a
+href="etrice-docse27.html" >next</a>] [<a
+href="etrice-docse26.html" >prev</a>] [<a
+href="etrice-docse26.html#tailetrice-docse26.html" >prev-tail</a>] [<a
href="etrice-docch8.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch8.html" >up</a>] </p></div>
<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
index ae846b739..e07c44848 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -91,8 +91,6 @@ href="etrice-docse7.html#x11-450008" id="QQ2-11-61">Open the Message Sequence Ch
href="etrice-docse7.html#x11-460009" id="QQ2-11-62">Summary</a></span>
<br />&#x00A0;<span class="sectionToc" >2.6 <a
href="etrice-docse8.html#x12-470006">Ping Pong Tutorial (Java and C)</a></span>
-
-
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.6.1 <a
href="etrice-docse8.html#x12-480001" id="QQ2-12-64">Scope</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.6.2 <a
@@ -107,6 +105,8 @@ href="etrice-docse8.html#x12-570005" id="QQ2-12-78">Implement the Behavior</a></
href="etrice-docse8.html#x12-580006" id="QQ2-12-79">Summary</a></span>
<br />&#x00A0;<span class="sectionToc" >2.7 <a
href="etrice-docse9.html#x13-590007">Traffic Light</a></span>
+
+
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.7.1 <a
href="etrice-docse9.html#x13-600001" id="QQ2-13-81">Scope</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.7.2 <a
@@ -128,299 +128,339 @@ href="etrice-docch3.html#x14-670003">Standalone Generators</a></span>
<br /><span class="chapterToc" >4 <a
href="etrice-docch4.html#x15-680004">Examples</a></span>
<br />&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse10.html#x16-690001">Dynamic Actors 1</a></span>
+href="etrice-docse10.html#x16-690001">The C examples project</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.1 <a
-href="etrice-docse10.html#x16-700001" id="QQ2-16-91">Purpose</a></span>
+href="etrice-docse10.html#x16-700001" id="QQ2-16-91">Traffic light - step 1</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.1.1 <a
+href="etrice-docse10.html#x16-710001" id="QQ2-16-92">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.1.2 <a
+href="etrice-docse10.html#x16-720002" id="QQ2-16-93">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.1.3 <a
+href="etrice-docse10.html#x16-730003" id="QQ2-16-94">Noteworthy</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.2 <a
-href="etrice-docse10.html#x16-710002" id="QQ2-16-92">Details</a></span>
+href="etrice-docse10.html#x16-740002" id="QQ2-16-95">Traffic light - step 2</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.2.1 <a
+href="etrice-docse10.html#x16-750001" id="QQ2-16-96">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.2.2 <a
+href="etrice-docse10.html#x16-760002" id="QQ2-16-97">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.2.3 <a
+href="etrice-docse10.html#x16-770003" id="QQ2-16-98">Noteworthy</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.3 <a
-href="etrice-docse10.html#x16-720003" id="QQ2-16-95">Noteworthy</a></span>
+href="etrice-docse10.html#x16-780003" id="QQ2-16-99">Traffic light - step 3</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.3.1 <a
+href="etrice-docse10.html#x16-790001" id="QQ2-16-100">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.3.2 <a
+href="etrice-docse10.html#x16-800002" id="QQ2-16-101">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.3.3 <a
+href="etrice-docse10.html#x16-810003" id="QQ2-16-102">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.4 <a
+href="etrice-docse10.html#x16-820004" id="QQ2-16-103">Traffic light - step 4</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.4.1 <a
+href="etrice-docse10.html#x16-830001" id="QQ2-16-104">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.4.2 <a
+href="etrice-docse10.html#x16-840002" id="QQ2-16-105">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.1.4.3 <a
+href="etrice-docse10.html#x16-850003" id="QQ2-16-106">Noteworthy</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse11.html#x17-730002">Dynamic Actors 2</a></span>
+href="etrice-docse11.html#x17-860002">The Java examples project</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.1 <a
-href="etrice-docse11.html#x17-740001" id="QQ2-17-97">Purpose</a></span>
+href="etrice-docse11.html#x17-870001" id="QQ2-17-108">Dynamic Actors 1</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.1.1 <a
+href="etrice-docse11.html#x17-880001" id="QQ2-17-109">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.1.2 <a
+href="etrice-docse11.html#x17-890002" id="QQ2-17-110">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.1.3 <a
+href="etrice-docse11.html#x17-900003" id="QQ2-17-113">Noteworthy</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.2 <a
-href="etrice-docse11.html#x17-750002" id="QQ2-17-98">Details</a></span>
+href="etrice-docse11.html#x17-910002" id="QQ2-17-114">Dynamic Actors 2</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.2.1 <a
+href="etrice-docse11.html#x17-920001" id="QQ2-17-115">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.2.2 <a
+href="etrice-docse11.html#x17-930002" id="QQ2-17-116">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.2.3 <a
+href="etrice-docse11.html#x17-940003" id="QQ2-17-118">Noteworthy</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.3 <a
-href="etrice-docse11.html#x17-760003" id="QQ2-17-100">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.3 <a
-href="etrice-docse12.html#x18-770003">Dynamic Actors 3</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.1 <a
-href="etrice-docse12.html#x18-780001" id="QQ2-18-102">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.2 <a
-href="etrice-docse12.html#x18-790002" id="QQ2-18-103">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.3.3 <a
-href="etrice-docse12.html#x18-800003" id="QQ2-18-104">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.4 <a
-href="etrice-docse13.html#x19-810004">Dynamic Actors 4</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.1 <a
-href="etrice-docse13.html#x19-820001" id="QQ2-19-106">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.2 <a
-href="etrice-docse13.html#x19-830002" id="QQ2-19-107">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.4.3 <a
-href="etrice-docse13.html#x19-840003" id="QQ2-19-108">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.5 <a
-href="etrice-docse14.html#x20-850005">Dynamic Actors 5</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.1 <a
-href="etrice-docse14.html#x20-860001" id="QQ2-20-110">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.2 <a
-href="etrice-docse14.html#x20-870002" id="QQ2-20-111">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.5.3 <a
-href="etrice-docse14.html#x20-880003" id="QQ2-20-112">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.6 <a
-href="etrice-docse15.html#x21-890006">Dynamic Actors 6</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.1 <a
-href="etrice-docse15.html#x21-900001" id="QQ2-21-114">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.2 <a
-href="etrice-docse15.html#x21-910002" id="QQ2-21-115">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.6.3 <a
-href="etrice-docse15.html#x21-920003" id="QQ2-21-116">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.7 <a
-href="etrice-docse16.html#x22-930007">Dynamic Actors 7</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.1 <a
-href="etrice-docse16.html#x22-940001" id="QQ2-22-118">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.2 <a
-href="etrice-docse16.html#x22-950002" id="QQ2-22-119">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.7.3 <a
-href="etrice-docse16.html#x22-960003" id="QQ2-22-120">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.8 <a
-href="etrice-docse17.html#x23-970008">Dynamic Actors 8</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.1 <a
-href="etrice-docse17.html#x23-980001" id="QQ2-23-122">Purpose</a></span>
+href="etrice-docse11.html#x17-950003" id="QQ2-17-119">Dynamic Actors 3</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.3.1 <a
+href="etrice-docse11.html#x17-960001" id="QQ2-17-120">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.3.2 <a
+href="etrice-docse11.html#x17-970002" id="QQ2-17-121">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.3.3 <a
+href="etrice-docse11.html#x17-980003" id="QQ2-17-122">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.4 <a
+href="etrice-docse11.html#x17-990004" id="QQ2-17-123">Dynamic Actors 4</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.4.1 <a
+href="etrice-docse11.html#x17-1000001" id="QQ2-17-124">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.4.2 <a
+href="etrice-docse11.html#x17-1010002" id="QQ2-17-125">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.4.3 <a
+href="etrice-docse11.html#x17-1020003" id="QQ2-17-126">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.5 <a
+href="etrice-docse11.html#x17-1030005" id="QQ2-17-127">Dynamic Actors 5</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.5.1 <a
+href="etrice-docse11.html#x17-1040001" id="QQ2-17-128">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.5.2 <a
+href="etrice-docse11.html#x17-1050002" id="QQ2-17-129">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.2 <a
-href="etrice-docse17.html#x23-990002" id="QQ2-23-123">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.8.3 <a
-href="etrice-docse17.html#x23-1000003" id="QQ2-23-124">Noteworthy</a></span>
-<br />&#x00A0;<span class="sectionToc" >4.9 <a
-href="etrice-docse18.html#x24-1010009">Dynamic Actors 9</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.1 <a
-href="etrice-docse18.html#x24-1020001" id="QQ2-24-126">Purpose</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.2 <a
-href="etrice-docse18.html#x24-1030002" id="QQ2-24-127">Details</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.9.3 <a
-href="etrice-docse18.html#x24-1040003" id="QQ2-24-128">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.5.3 <a
+href="etrice-docse11.html#x17-1060003" id="QQ2-17-130">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.6 <a
+href="etrice-docse11.html#x17-1070006" id="QQ2-17-131">Dynamic Actors 6</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.6.1 <a
+href="etrice-docse11.html#x17-1080001" id="QQ2-17-132">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.6.2 <a
+href="etrice-docse11.html#x17-1090002" id="QQ2-17-133">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.6.3 <a
+href="etrice-docse11.html#x17-1100003" id="QQ2-17-134">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.7 <a
+href="etrice-docse11.html#x17-1110007" id="QQ2-17-135">Dynamic Actors 7</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.7.1 <a
+href="etrice-docse11.html#x17-1120001" id="QQ2-17-136">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.7.2 <a
+href="etrice-docse11.html#x17-1130002" id="QQ2-17-137">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.7.3 <a
+href="etrice-docse11.html#x17-1140003" id="QQ2-17-138">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.8 <a
+href="etrice-docse11.html#x17-1150008" id="QQ2-17-139">Dynamic Actors 8</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.8.1 <a
+href="etrice-docse11.html#x17-1160001" id="QQ2-17-140">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.8.2 <a
+href="etrice-docse11.html#x17-1170002" id="QQ2-17-141">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.8.3 <a
+href="etrice-docse11.html#x17-1180003" id="QQ2-17-142">Noteworthy</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.9 <a
+href="etrice-docse11.html#x17-1190009" id="QQ2-17-143">Dynamic Actors 9</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.9.1 <a
+href="etrice-docse11.html#x17-1200001" id="QQ2-17-144">Purpose</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.9.2 <a
+href="etrice-docse11.html#x17-1210002" id="QQ2-17-145">Details</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >4.2.9.3 <a
+href="etrice-docse11.html#x17-1220003" id="QQ2-17-146">Noteworthy</a></span>
<br /><span class="chapterToc" >5 <a
-href="etrice-docch5.html#x25-1050005">ROOM Concepts</a></span>
+href="etrice-docch5.html#x18-1230005">ROOM Concepts</a></span>
<br />&#x00A0;<span class="sectionToc" >5.1 <a
-href="etrice-docse19.html#x26-1060001">Actors</a></span>
+href="etrice-docse12.html#x19-1240001">Actors</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.1 <a
-href="etrice-docse19.html#x26-1070001" id="QQ2-26-131">Description</a></span>
+href="etrice-docse12.html#x19-1250001" id="QQ2-19-149">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.2 <a
-href="etrice-docse19.html#x26-1080002" id="QQ2-26-132">Motivation</a></span>
+href="etrice-docse12.html#x19-1260002" id="QQ2-19-150">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.3 <a
-href="etrice-docse19.html#x26-1090003" id="QQ2-26-133">Notation</a></span>
+href="etrice-docse12.html#x19-1270003" id="QQ2-19-151">Notation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.4 <a
-href="etrice-docse19.html#x26-1100004" id="QQ2-26-135">Details</a></span>
+href="etrice-docse12.html#x19-1280004" id="QQ2-19-153">Details</a></span>
<br />&#x00A0;<span class="sectionToc" >5.2 <a
-href="etrice-docse20.html#x27-1140002">Protocols</a></span>
+href="etrice-docse13.html#x20-1320002">Protocols</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.1 <a
-href="etrice-docse20.html#x27-1150001" id="QQ2-27-144">Description</a></span>
+href="etrice-docse13.html#x20-1330001" id="QQ2-20-162">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.2 <a
-href="etrice-docse20.html#x27-1160002" id="QQ2-27-145">Motivation</a></span>
+href="etrice-docse13.html#x20-1340002" id="QQ2-20-163">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.3 <a
-href="etrice-docse20.html#x27-1170003" id="QQ2-27-146">Notation</a></span>
+href="etrice-docse13.html#x20-1350003" id="QQ2-20-164">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.3 <a
-href="etrice-docse21.html#x28-1180003">Ports</a></span>
+href="etrice-docse14.html#x21-1360003">Ports</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.1 <a
-href="etrice-docse21.html#x28-1190001" id="QQ2-28-148">Description</a></span>
+href="etrice-docse14.html#x21-1370001" id="QQ2-21-166">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.2 <a
-href="etrice-docse21.html#x28-1200002" id="QQ2-28-149">Motivation</a></span>
+href="etrice-docse14.html#x21-1380002" id="QQ2-21-167">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.3.3 <a
-href="etrice-docse21.html#x28-1210003" id="QQ2-28-150">Notation</a></span>
+href="etrice-docse14.html#x21-1390003" id="QQ2-21-168">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.4 <a
-href="etrice-docse22.html#x29-1240004">DataClass</a></span>
+href="etrice-docse15.html#x22-1420004">DataClass</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.4.1 <a
-href="etrice-docse22.html#x29-1250001" id="QQ2-29-170">Description</a></span>
+href="etrice-docse15.html#x22-1430001" id="QQ2-22-188">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.4.2 <a
-href="etrice-docse22.html#x29-1260002" id="QQ2-29-171">Notation</a></span>
+href="etrice-docse15.html#x22-1440002" id="QQ2-22-189">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.5 <a
-href="etrice-docse23.html#x30-1270005">Layering</a></span>
+href="etrice-docse16.html#x23-1450005">Layering</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.5.1 <a
-href="etrice-docse23.html#x30-1280001" id="QQ2-30-173">Description</a></span>
+href="etrice-docse16.html#x23-1460001" id="QQ2-23-191">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.5.2 <a
-href="etrice-docse23.html#x30-1290002" id="QQ2-30-174">Notation</a></span>
+href="etrice-docse16.html#x23-1470002" id="QQ2-23-192">Notation</a></span>
<br />&#x00A0;<span class="sectionToc" >5.6 <a
-href="etrice-docse24.html#x31-1300006">Finite State Machines</a></span>
+href="etrice-docse17.html#x24-1480006">Finite State Machines</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.1 <a
-href="etrice-docse24.html#x31-1310001" id="QQ2-31-177">Description</a></span>
+href="etrice-docse17.html#x24-1490001" id="QQ2-24-195">Description</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.2 <a
-href="etrice-docse24.html#x31-1320002" id="QQ2-31-178">Motivation</a></span>
+href="etrice-docse17.html#x24-1500002" id="QQ2-24-196">Motivation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.3 <a
-href="etrice-docse24.html#x31-1330003" id="QQ2-31-179">Notation</a></span>
+href="etrice-docse17.html#x24-1510003" id="QQ2-24-197">Notation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.6.4 <a
-href="etrice-docse24.html#x31-1360004" id="QQ2-31-186">Examples</a></span>
+href="etrice-docse17.html#x24-1540004" id="QQ2-24-204">Examples</a></span>
<br /><span class="chapterToc" >6 <a
-href="etrice-docch6.html#x32-1370006">eTrice Features</a></span>
+href="etrice-docch6.html#x25-1550006">eTrice Features</a></span>
<br />&#x00A0;<span class="sectionToc" >6.1 <a
-href="etrice-docse25.html#x33-1380001">Model Navigation</a></span>
+href="etrice-docse18.html#x26-1560001">Model Navigation</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.1 <a
-href="etrice-docse25.html#x33-1390001" id="QQ2-33-193">From Model to Behavior to Structure</a></span>
+href="etrice-docse18.html#x26-1570001" id="QQ2-26-211">From Model to Behavior to Structure</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.2 <a
-href="etrice-docse25.html#x33-1400002" id="QQ2-33-194">Model Navigation</a></span>
+href="etrice-docse18.html#x26-1580002" id="QQ2-26-212">Model Navigation</a></span>
+
+
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.3 <a
-href="etrice-docse25.html#x33-1410003" id="QQ2-33-195">Navigating Behavior Diagrams</a></span>
+href="etrice-docse18.html#x26-1590003" id="QQ2-26-213">Navigating Behavior Diagrams</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.4 <a
-href="etrice-docse25.html#x33-1420004" id="QQ2-33-196">Navigating Structure Diagrams</a></span>
+href="etrice-docse18.html#x26-1600004" id="QQ2-26-214">Navigating Structure Diagrams</a></span>
<br />&#x00A0;<span class="sectionToc" >6.2 <a
-href="etrice-docse26.html#x34-1430002">eTrice Java Projects</a></span>
+href="etrice-docse19.html#x27-1610002">eTrice Java Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.1 <a
-href="etrice-docse26.html#x34-1440001" id="QQ2-34-198">Eclipse JDT Build</a></span>
+href="etrice-docse19.html#x27-1620001" id="QQ2-27-216">Eclipse JDT Build</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.2 <a
-href="etrice-docse26.html#x34-1450002" id="QQ2-34-199">Maven Build</a></span>
+href="etrice-docse19.html#x27-1630002" id="QQ2-27-217">Maven Build</a></span>
<br />&#x00A0;<span class="sectionToc" >6.3 <a
-href="etrice-docse27.html#x35-1470003">Automatic Diagram Layout with KIELER</a></span>
+href="etrice-docse20.html#x28-1650003">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.1 <a
-href="etrice-docse27.html#x35-1480001" id="QQ2-35-204">Overview</a></span>
+href="etrice-docse20.html#x28-1660001" id="QQ2-28-222">Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.2 <a
-href="etrice-docse27.html#x35-1490002" id="QQ2-35-205">Performing Automatic Layout</a></span>
+href="etrice-docse20.html#x28-1670002" id="QQ2-28-223">Performing Automatic Layout</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.3 <a
-href="etrice-docse27.html#x35-1500003" id="QQ2-35-206">Layout Options</a></span>
+href="etrice-docse20.html#x28-1680003" id="QQ2-28-224">Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.4 <a
-href="etrice-docse27.html#x35-1510004" id="QQ2-35-208">Configuring Layout Options</a></span>
+href="etrice-docse20.html#x28-1690004" id="QQ2-28-226">Configuring Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.5 <a
-href="etrice-docse27.html#x35-1540005" id="QQ2-35-218">Special Layout Options</a></span>
-
-
+href="etrice-docse20.html#x28-1720005" id="QQ2-28-236">Special Layout Options</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.3.6 <a
-href="etrice-docse27.html#x35-1570006" id="QQ2-35-223">Further References</a></span>
+href="etrice-docse20.html#x28-1750006" id="QQ2-28-241">Further References</a></span>
<br />&#x00A0;<span class="sectionToc" >6.4 <a
-href="etrice-docse28.html#x36-1580004">Annotations</a></span>
+href="etrice-docse21.html#x29-1760004">Annotations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.4.1 <a
-href="etrice-docse28.html#x36-1590001" id="QQ2-36-225">Annotation Type Definitions</a></span>
+href="etrice-docse21.html#x29-1770001" id="QQ2-29-243">Annotation Type Definitions</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.4.2 <a
-href="etrice-docse28.html#x36-1600002" id="QQ2-36-227">Usage and Effect of the Pre-defined Annotations</a></span>
+href="etrice-docse21.html#x29-1780002" id="QQ2-29-245">Usage and Effect of the Pre-defined Annotations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.5 <a
-href="etrice-docse29.html#x37-1630005">Enumerations</a></span>
+href="etrice-docse22.html#x30-1810005">Enumerations</a></span>
<br />&#x00A0;<span class="sectionToc" >6.6 <a
-href="etrice-docse30.html#x38-1640006">eTrice Models and Their Relations</a></span>
+href="etrice-docse23.html#x31-1820006">eTrice Models and Their Relations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.1 <a
-href="etrice-docse30.html#x38-1650001" id="QQ2-38-235">The ROOM Model</a></span>
+href="etrice-docse23.html#x31-1830001" id="QQ2-31-253">The ROOM Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.2 <a
-href="etrice-docse30.html#x38-1660002" id="QQ2-38-238">The Config Model</a></span>
+href="etrice-docse23.html#x31-1840002" id="QQ2-31-256">The Config Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.3 <a
-href="etrice-docse30.html#x38-1670003" id="QQ2-38-240">The Physical Model</a></span>
+href="etrice-docse23.html#x31-1850003" id="QQ2-31-258">The Physical Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.6.4 <a
-href="etrice-docse30.html#x38-1680004" id="QQ2-38-243">The Mapping Model</a></span>
+href="etrice-docse23.html#x31-1860004" id="QQ2-31-261">The Mapping Model</a></span>
<br /><span class="chapterToc" >7 <a
-href="etrice-docch7.html#x39-1690007">eTrice Reference</a></span>
+href="etrice-docch7.html#x32-1870007">eTrice Reference</a></span>
<br />&#x00A0;<span class="sectionToc" >7.1 <a
-href="etrice-docse31.html#x40-1700001">ROOMLanguage</a></span>
+href="etrice-docse24.html#x33-1880001">ROOMLanguage</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.1 <a
-href="etrice-docse31.html#x40-1710001" id="QQ2-40-247">ConfigModel</a></span>
+href="etrice-docse24.html#x33-1890001" id="QQ2-33-265">ConfigModel</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.2 <a
-href="etrice-docse31.html#x40-1720002" id="QQ2-40-248">LogicalModel</a></span>
+href="etrice-docse24.html#x33-1900002" id="QQ2-33-266">LogicalModel</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.1 <a
-href="etrice-docse31.html#x40-1730001" id="QQ2-40-249">ActorClass</a></span>
+href="etrice-docse24.html#x33-1910001" id="QQ2-33-267">ActorClass</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.2 <a
-href="etrice-docse31.html#x40-1740002" id="QQ2-40-250">ActorRef</a></span>
+href="etrice-docse24.html#x33-1920002" id="QQ2-33-268">ActorRef</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.3 <a
-href="etrice-docse31.html#x40-1750003" id="QQ2-40-252">Annotation</a></span>
+href="etrice-docse24.html#x33-1930003" id="QQ2-33-270">Annotation</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.4 <a
-href="etrice-docse31.html#x40-1760004" id="QQ2-40-253">Attribute</a></span>
+href="etrice-docse24.html#x33-1940004" id="QQ2-33-271">AnnotationType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.5 <a
-href="etrice-docse31.html#x40-1770005" id="QQ2-40-254">Binding</a></span>
+href="etrice-docse24.html#x33-1950005" id="QQ2-33-272">Attribute</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.6 <a
-href="etrice-docse31.html#x40-1780006" id="QQ2-40-255">CommunicationType</a></span>
+href="etrice-docse24.html#x33-1960006" id="QQ2-33-273">Binding</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.7 <a
-href="etrice-docse31.html#x40-1790007" id="QQ2-40-256">DataClass</a></span>
+href="etrice-docse24.html#x33-1970007" id="QQ2-33-274">CommunicationType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.8 <a
-href="etrice-docse31.html#x40-1800008" id="QQ2-40-257">DataType</a></span>
+href="etrice-docse24.html#x33-1980008" id="QQ2-33-275">DataClass</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.9 <a
-href="etrice-docse31.html#x40-1810009" id="QQ2-40-258">EnumerationType</a></span>
+href="etrice-docse24.html#x33-1990009" id="QQ2-33-276">DataType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.10 <a
-href="etrice-docse31.html#x40-18200010" id="QQ2-40-259">ExecutionType</a></span>
+href="etrice-docse24.html#x33-20000010" id="QQ2-33-277">EnumerationType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.11 <a
-href="etrice-docse31.html#x40-18300011" id="QQ2-40-260">ExternalEndPort</a></span>
+href="etrice-docse24.html#x33-20100011" id="QQ2-33-278">ExecutionType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.12 <a
-href="etrice-docse31.html#x40-18400012" id="QQ2-40-261">ExternalType</a></span>
+href="etrice-docse24.html#x33-20200012" id="QQ2-33-279">ExternalEndPort</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.13 <a
-href="etrice-docse31.html#x40-18500013" id="QQ2-40-262">Inheritance</a></span>
+href="etrice-docse24.html#x33-20300013" id="QQ2-33-280">ExternalType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.14 <a
-href="etrice-docse31.html#x40-18600014" id="QQ2-40-263">InternalEndPort</a></span>
+href="etrice-docse24.html#x33-20400014" id="QQ2-33-281">Inheritance</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.15 <a
-href="etrice-docse31.html#x40-18700015" id="QQ2-40-264">LayerConnection</a></span>
+href="etrice-docse24.html#x33-20500015" id="QQ2-33-282">InternalEndPort</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.16 <a
-href="etrice-docse31.html#x40-18800016" id="QQ2-40-265">LogicalSystem</a></span>
+href="etrice-docse24.html#x33-20600016" id="QQ2-33-283">LayerConnection</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.17 <a
-href="etrice-docse31.html#x40-18900017" id="QQ2-40-266">Operation</a></span>
+href="etrice-docse24.html#x33-20700017" id="QQ2-33-284">LogicalSystem</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.18 <a
-href="etrice-docse31.html#x40-19000018" id="QQ2-40-267">Port</a></span>
+href="etrice-docse24.html#x33-20800018" id="QQ2-33-285">Operation</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.19 <a
-href="etrice-docse31.html#x40-19100019" id="QQ2-40-268">PrimitiveType</a></span>
+href="etrice-docse24.html#x33-20900019" id="QQ2-33-286">Port</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.20 <a
-href="etrice-docse31.html#x40-19200020" id="QQ2-40-269">ProtocolClass</a></span>
+href="etrice-docse24.html#x33-21000020" id="QQ2-33-287">PrimitiveType</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.21 <a
-href="etrice-docse31.html#x40-19300021" id="QQ2-40-270">RelayPort</a></span>
+href="etrice-docse24.html#x33-21100021" id="QQ2-33-288">ProtocolClass</a></span>
+
+
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.22 <a
-href="etrice-docse31.html#x40-19400022" id="QQ2-40-271">SAP</a></span>
+href="etrice-docse24.html#x33-21200022" id="QQ2-33-289">RelayPort</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.23 <a
-href="etrice-docse31.html#x40-19500023" id="QQ2-40-272">SPP</a></span>
+href="etrice-docse24.html#x33-21300023" id="QQ2-33-290">Replication</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.24 <a
-href="etrice-docse31.html#x40-19600024" id="QQ2-40-273">StateMachine</a></span>
+href="etrice-docse24.html#x33-21400024" id="QQ2-33-291">SAP</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.25 <a
-href="etrice-docse31.html#x40-19700025" id="QQ2-40-274">SubSystemClass</a></span>
+href="etrice-docse24.html#x33-21500025" id="QQ2-33-292">SPP</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.26 <a
-href="etrice-docse31.html#x40-19800026" id="QQ2-40-275">SubSystemRef</a></span>
+href="etrice-docse24.html#x33-21600026" id="QQ2-33-293">StateMachine</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.27 <a
+href="etrice-docse24.html#x33-21700027" id="QQ2-33-294">SubSystemClass</a></span>
+<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.1.2.28 <a
+href="etrice-docse24.html#x33-21800028" id="QQ2-33-295">SubSystemRef</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.3 <a
-href="etrice-docse31.html#x40-1990003" id="QQ2-40-276">MappingModel</a></span>
+href="etrice-docse24.html#x33-2190003" id="QQ2-33-296">MappingModel</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.1.4 <a
-href="etrice-docse31.html#x40-2000004" id="QQ2-40-277">PhysicalModel</a></span>
+href="etrice-docse24.html#x33-2200004" id="QQ2-33-297">PhysicalModel</a></span>
<br />&#x00A0;<span class="sectionToc" >7.2 <a
-href="etrice-docse32.html#x41-2010002">ModelEditors</a></span>
+href="etrice-docse25.html#x34-2210002">ModelEditors</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.1 <a
-href="etrice-docse32.html#x41-2020001" id="QQ2-41-279">GraphicalBehaviorEditor</a></span>
+href="etrice-docse25.html#x34-2220001" id="QQ2-34-299">GraphicalBehaviorEditor</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.2 <a
-href="etrice-docse32.html#x41-2030002" id="QQ2-41-280">GraphicalStructureEditor</a></span>
+href="etrice-docse25.html#x34-2230002" id="QQ2-34-300">GraphicalStructureEditor</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.2.2.1 <a
-href="etrice-docse32.html#x41-2040001" id="QQ2-41-281">ActorRefPropertyDialog</a></span>
-
-
+href="etrice-docse25.html#x34-2240001" id="QQ2-34-301">ActorRefPropertyDialog</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.2.2.2 <a
-href="etrice-docse32.html#x41-2050002" id="QQ2-41-282">PortPropertyDialog</a></span>
+href="etrice-docse25.html#x34-2250002" id="QQ2-34-302">PortPropertyDialog</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.2.2.3 <a
-href="etrice-docse32.html#x41-2060003" id="QQ2-41-283">SPPPropertyDialog</a></span>
+href="etrice-docse25.html#x34-2260003" id="QQ2-34-303">SPPPropertyDialog</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.2.2.4 <a
-href="etrice-docse32.html#x41-2070004" id="QQ2-41-284">StructureEditorPalette</a></span>
+href="etrice-docse25.html#x34-2270004" id="QQ2-34-304">StructureEditorPalette</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.2.3 <a
-href="etrice-docse32.html#x41-2080003" id="QQ2-41-285">TextualROOMEditor</a></span>
+href="etrice-docse25.html#x34-2280003" id="QQ2-34-305">TextualROOMEditor</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.2.3.1 <a
-href="etrice-docse32.html#x41-2090001" id="QQ2-41-286">OutlineView</a></span>
+href="etrice-docse25.html#x34-2290001" id="QQ2-34-306">OutlineView</a></span>
<br />&#x00A0;<span class="sectionToc" >7.3 <a
-href="etrice-docse33.html#x42-2100003">CodeGenerators</a></span>
+href="etrice-docse26.html#x35-2300003">CodeGenerators</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.1 <a
-href="etrice-docse33.html#x42-2110001" id="QQ2-42-288">CCodeGenerator</a></span>
+href="etrice-docse26.html#x35-2310001" id="QQ2-35-308">CCodeGenerator</a></span>
<br />&#x00A0;&#x00A0;&#x00A0;<span class="subsubsectionToc" >7.3.1.1 <a
-href="etrice-docse33.html#x42-2120001" id="QQ2-42-289">DataLogging</a></span>
+href="etrice-docse26.html#x35-2320001" id="QQ2-35-309">DataLogging</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.2 <a
-href="etrice-docse33.html#x42-2130002" id="QQ2-42-290">GenerationOptions</a></span>
+href="etrice-docse26.html#x35-2330002" id="QQ2-35-310">GenerationOptions</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.3 <a
-href="etrice-docse33.html#x42-2140003" id="QQ2-42-291">JavaCodeGenerator</a></span>
+href="etrice-docse26.html#x35-2340003" id="QQ2-35-311">JavaCodeGenerator</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >7.3.4 <a
-href="etrice-docse33.html#x42-2150004" id="QQ2-42-292">MSCLogging</a></span>
+href="etrice-docse26.html#x35-2350004" id="QQ2-35-312">MSCLogging</a></span>
<br /><span class="chapterToc" >8 <a
-href="etrice-docch8.html#x43-2160008">eTrice Tool Developer&#8217;s Reference</a></span>
+href="etrice-docch8.html#x36-2360008">eTrice Tool Developer&#8217;s Reference</a></span>
<br />&#x00A0;<span class="sectionToc" >8.1 <a
-href="etrice-docse34.html#x44-2170001">Architecture</a></span>
+href="etrice-docse27.html#x37-2370001">Architecture</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.1 <a
-href="etrice-docse34.html#x44-2180001" id="QQ2-44-295">Editor and Generator Components</a></span>
+href="etrice-docse27.html#x37-2380001" id="QQ2-37-315">Editor and Generator Components</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.2 <a
-href="etrice-docse34.html#x44-2190002" id="QQ2-44-296">The Abstract Finite State Machine Concept</a></span>
+href="etrice-docse27.html#x37-2390002" id="QQ2-37-316">The Abstract Finite State Machine Concept</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.3 <a
-href="etrice-docse34.html#x44-2220003" id="QQ2-44-301">Runtimes</a></span>
+href="etrice-docse27.html#x37-2420003" id="QQ2-37-321">Runtimes</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.1.4 <a
-href="etrice-docse34.html#x44-2230004" id="QQ2-44-302">Unit Tests</a></span>
+href="etrice-docse27.html#x37-2430004" id="QQ2-37-322">Unit Tests</a></span>
<br />&#x00A0;<span class="sectionToc" >8.2 <a
-href="etrice-docse35.html#x45-2240002">Component Overview</a></span>
+href="etrice-docse28.html#x38-2440002">Component Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.1 <a
-href="etrice-docse35.html#x45-2250001" id="QQ2-45-304">Room Language Overview</a></span>
+href="etrice-docse28.html#x38-2450001" id="QQ2-38-324">Room Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.2 <a
-href="etrice-docse35.html#x45-2310002" id="QQ2-45-315">Config Language Overview</a></span>
+href="etrice-docse28.html#x38-2510002" id="QQ2-38-335">Config Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.3 <a
-href="etrice-docse35.html#x45-2350003" id="QQ2-45-322">Aggregation Layer Overview</a></span>
+href="etrice-docse28.html#x38-2550003" id="QQ2-38-342">Aggregation Layer Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >8.2.4 <a
-href="etrice-docse35.html#x45-2400004" id="QQ2-45-331">Generator Overview</a></span>
+href="etrice-docse28.html#x38-2600004" id="QQ2-38-351">Generator Overview</a></span>
</div>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
index a8e92c76d..03a9094cd 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
index 0fe4e46bb..84be6d7d4 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
@@ -4,784 +4,222 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 1</title>
+<head><title>The C examples project</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 10--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 15--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse11.html" >next</a>] [<a
href="etrice-docch4.html" >prev</a>] [<a
href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
href="#tailetrice-docse10.html">tail</a>] [<a
href="etrice-docch4.html#etrice-docse10.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">4.1 </span> <a
- id="x16-690001"></a>Dynamic Actors 1</h3>
-<!--l. 12--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors1</span>.
+ id="x16-690001"></a>The C examples project</h3>
+<!--l. 17--><p class="noindent" >This example project <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.c </span>illustrates a simplified traffic light control. It actually
+consists of four different steps of increasing complexity that can be generated and built one by one (but not in
+parallel).
+</p><!--l. 23--><p class="noindent" >Most of the classes are contained in a common ROOM model <span
+class="ec-lmtt-10">model/TrafficLight/TrafficLight.room </span>that also shows
+how ROOM classes can form a library and used as building blocks for several systems. Also the physical model is shared by all
+steps of this example.
+</p><!--l. 28--><p class="noindent" >Contained in the example you will find a little Java GUI that some of the example use to simulate a real traffic light. The GUI
+is contacted using TCP/IP ports 4441 and subsequent. The protocol used on the TCP/IP socket connection is a simple text
+protocol with commands for the lights. Three of the example steps make use of this simulator GUI. They also contain a
+launch configuration for it.
+</p><!--l. 35--><p class="noindent" ><span
+class="ec-lmssbx-10">Note: </span>Before compiling and linking a new step of the example the project should be cleaned to avoid duplicate symbols due
+to artifacts from the previous build.
<a
id="x16-69001r87"></a>
</p>
<h4 class="subsectionHead"><span class="titlemark">4.1.1 </span> <a
- id="x16-700001"></a>Purpose</h4>
-<!--l. 16--><p class="noindent" >The example demonstrates the usage of an optional actor. It is shown that several actor classes derived from the type of the
-optional actor reference can be optionally created in place of the optional actor reference. Optional actor instances can also
-be destroyed and another instance can be created in the free slot.
+ id="x16-700001"></a>Traffic light - step 1</h4>
+<!--l. 41--><p class="noindent" >The main ROOM model and the mapping model of this example is contained in <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.c/model/TrafficLight_step1</span>.
+
+
+It also contains launch configurations for the code generation and for running the application.
<a
- id="x16-70001r91"></a>
+ id="x16-70001r1"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.2 </span> <a
- id="x16-710002"></a>Details</h4>
-<!--l. 23--><p class="noindent" >The structure of this system is simple.
-</p><!--l. 25--><p class="noindent" ><img
-src="images/039-DynAct1-Main_instanceTree.jpg" alt="PIC"
- />
-</p><!--l. 27--><p class="noindent" >However, this is only the initial system structure. The leaf instance is just a place holder for an optional actor instance. In this
-place an instance of a compatible type can be created at run time. Compatible types are the type of the reference itself and
-all of its sub types as long as they are not abstract. Together with the instance all of its contained instances will be created
-and all ports are connected.
-</p><!--l. 33--><p class="noindent" >This example demonstrates how an optional actor is created and destroyed and another one of another type is created to hold
-the same place.
-</p><!--l. 36--><p class="noindent" ><img
-src="images/039-DynAct1-Container_behavior.jpg" alt="PIC"
- />
-</p><!--l. 38--><p class="noindent" >When the example is executed the <span
-class="ec-lmtt-10">Container </span>actor first dumps the instance tree to the console (line 56 of the listing below).
-Then it creates an instance of <span
-class="ec-lmtt-10">Optional2 </span>(line 57). Now that the <span
-class="ec-lmtt-10">p0 </span>port of the container is connected a message
-<span
-class="ec-lmtt-10">sayHello() </span>is sent to the newly created actor instance and the instance tree is dumped a second time. As soon as it receives
-the answer it prints it to the console. Then the optional actor is destroyed again and another one, now of type <span
-class="ec-lmtt-10">Optional1</span>, is
-created and once more <span
-class="ec-lmtt-10">sayHello() </span>is sent.
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.1.1 </span> <a
+ id="x16-710001"></a>Purpose</h5>
+<!--l. 48--><p class="noindent" >This example illustrates how a single actor can be tested against a test harness.
+<a
+ id="x16-71001r92"></a>
</p>
-<!--l. 46--><div class="lstinputlisting">
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.1.2 </span> <a
+ id="x16-720002"></a>Details</h5>
+<!--l. 52--><p class="noindent" >A <span
+class="ec-lmtt-10">PedestrianTrafficLightController </span>is an actor that controls a traffic light consisting of a traffic light with
+red, yellow and green for the cars, a second traffic light with just red and green and a request button for the
+pedestrians.
+</p><!--l. 56--><p class="noindent" >The controller has two ports, <span
+class="ec-lmtt-10">fct </span>and <span
+class="ec-lmtt-10">tlInterface</span>. The first one uses a protocol <span
+class="ec-lmtt-10">PTrafficLightController </span>that offers
+the high level commands <span
+class="ec-lmtt-10">standby</span>, <span
+class="ec-lmtt-10">start </span>and <span
+class="ec-lmtt-10">stop</span>. The second one uses a conjugated protocol <span
+class="ec-lmtt-10">PTrafficLightInterface</span>
+which controls each of the lights separately.
+</p><!--l. 62--><p class="noindent" >The test harness <span
+class="ec-lmtt-10">TrafficLightControllerTestHarness </span>is connected to both ports and drives the test in several
+steps.
+</p><!--l. 65--><p class="noindent" >To run the test first generate the code using <span
+class="ec-lmtt-10">gen_TrafficLight_step1.launch</span>, then compile and link it (using the
+CDTbuild). Since this step doesn&#8217;t use a GUI you can just start the application using <span
+class="ec-lmtt-10">run_TrafficLight_step1.launch</span>.
+<a
+ id="x16-72001r93"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.1.3 </span> <a
+ id="x16-730003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">usage of a ROOM model as library for several systems
+ </li>
+ <li class="itemize">creation of a test harness for an actor</li></ul>
+<a
+ id="x16-73001r91"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.1.2 </span> <a
+ id="x16-740002"></a>Traffic light - step 2</h4>
+<!--l. 78--><p class="noindent" >The main ROOM model and the mapping model of this example is contained in <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.c/model/TrafficLight_step2</span>.
+It also contains launch configurations for the code generation, for launching the simulator GUI and for running the
+application.
<a
- id="x16-71001r1"></a>
+ id="x16-74001r94"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.2.1 </span> <a
+ id="x16-750001"></a>Purpose</h5>
+<!--l. 86--><p class="noindent" >This example shows the control of a single block of traffic lights containing a car light and a light for the pedestrians. It
+illustrates how a stack of abstraction levels is used to conveniently divide the problem into relatively simple
+parts.
<a
- id="x16-71002"></a>
+ id="x16-75001r96"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.2.2 </span> <a
+ id="x16-760002"></a>Details</h5>
+<!--l. 93--><p class="noindent" >The 4 levels of this application starts with a <span
+class="ec-lmtt-10">TrafficLightHeadquarters </span>on the top. It controls the global operating mode
+of the traffic light block. The test harness <span
+class="ec-lmtt-10">TrafficLightControllerTestHarness </span>is connected to both ports and drives the
+test in several steps.
+</p><!--l. 99--><p class="noindent" >On the next level we have a <span
+class="ec-lmtt-10">PedestrianTrafficLightController </span>which offers some very general commands like <span
+class="ec-lmtt-10">start</span>,
<span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71003r36"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">StateMachine</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71004r37"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">init</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71005r38"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr0</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71006r39"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71007r40"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">hello</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">p0</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71008r41"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71009r42"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">action</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71010r43"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">System</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">out</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">println</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">txt</span><span
-class="ec-lmtt-9">+\"\\</span><span
-class="ec-lmtt-9">n</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71011r44"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">opt</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">destroyOptionalActor</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71012r45"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">dumpTree</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">after</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">deletion</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Optional2</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71013r46"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71014r47"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71015r48"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ReceivedHelloAgain</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71016r49"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71017r50"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">hello</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">p0</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71018r51"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71019r52"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">action</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71020r53"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">System</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">out</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">println</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">txt</span><span
-class="ec-lmtt-9">+\"\\</span><span
-class="ec-lmtt-9">n</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71021r54"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">opt</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">destroyOptionalActor</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71022r55"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71023r56"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71024r57"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71025r58"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71026r59"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">dumpTree</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">before</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Optional2</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71027r60"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">opt</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">createOptionalActor</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">Optional2</span><span
-class="ec-lmtt-9">\",</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">getThread</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71028r61"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">p0</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">sayHello</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71029r62"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">dumpTree</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">after</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Optional2</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71030r63"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71031r64"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71032r65"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">CreateOptional1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71033r66"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71034r67"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">opt</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">createOptionalActor</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">Optional1</span><span
-class="ec-lmtt-9">\",</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">getThread</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71035r68"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">p0</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">sayHello</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71036r69"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">dumpTree</span><span
-class="ec-lmtt-9">(\"</span><span
-class="ec-lmtt-9">after</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Optional1</span><span
-class="ec-lmtt-9">\")</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71037r70"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71038r71"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71039r72"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ReceivedHelloAgain</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x16-71040r73"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span>
-<br />
- <div class="caption"
-><span class="id">Listing&#x00A0;4.1:
- </span><span
-class="content">Container
- actor
- state
- machine</span></div><!--tex4ht:label?: x16-710004 -->
-</div>
-<!--l. 48--><p class="noindent" >The console output of the running application starts with
+class="ec-lmtt-10">stop </span>and <span
+class="ec-lmtt-10">standby</span>.
+</p><!--l. 102--><p class="noindent" >On the second level we find an actor <span
+class="ec-lmtt-10">PTrafficLightInterface </span>that offers basic traffic light control in the form of switching
+the state of each single light separately.
+</p><!--l. 106--><p class="noindent" >On the base level we have an actor handling a TCP/IP socket connection with a general text protocol.
+</p><!--l. 109--><p class="noindent" >To run the test first generate the code using <span
+class="ec-lmtt-10">gen_TrafficLight_step2.launch</span>, then compile and link it (using the
+CDTbuild). Since this step uses a GUI with a single block of lights you&#8217;ll have to launch the simulator using
+<span
+class="ec-lmtt-10">run_simulator_1_block.launch</span>. Then you can just start the application using <span
+class="ec-lmtt-10">run_TrafficLight_step2.launch</span>.
+</p><!--l. 115--><p class="noindent" >After going through a short initialization and standby phase the traffic light goes into a mode of permanent green for cars.
+After pressing the &#8217;request&#8217; button in the simulator GUI the light switches to red for cars and green for pedestrians and back
+to permanent green for cars.
+<a
+ id="x16-76001r97"></a>
</p>
-<div class="verbatim" id="verbatim-12">
-***&#x00A0;&#x00A0;&#x00A0;T&#x00A0;H&#x00A0;E&#x00A0;&#x00A0;&#x00A0;B&#x00A0;E&#x00A0;G&#x00A0;I&#x00A0;N&#x00A0;&#x00A0;&#x00A0;***
-&#x00A0;<br />***&#x00A0;MainComponent&#x00A0;/LS/main::init&#x00A0;***
-&#x00A0;<br />type&#x00A0;&#8217;quit&#8217;&#x00A0;to&#x00A0;exit
-&#x00A0;<br />before&#x00A0;creation&#x00A0;of&#x00A0;Optional2
-&#x00A0;<br />LS
-&#x00A0;<br />&#x00A0;&#x00A0;main
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;MessageService_MessageService_PhysicalThread1
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Dispatcher
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Queue
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Appl,&#x00A0;instancePath=/LS/main/appl)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Container,&#x00A0;instancePath=/LS/main/appl/cont)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ScalarOptionalActorInterface(className=Optional,&#x00A0;instancePath=/LS/main/appl/cont/opt)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort1
-</div>
-<!--l. 71--><p class="nopar" >
-</p><!--l. 73--><p class="noindent" >The <span
-class="ec-lmtt-10">ScalarOptionalActorInterface(className=Optional, instancePath=/LS/main/appl/cont/opt) </span>is an object
-which is responsible for the life cycle of the dynamic actor (including its contained instances) and for the mediation of the
-port connections. It contains a replicated <span
-class="ec-lmtt-10">RTSystemPort </span>which is used to trigger the initial transition and the port <span
-class="ec-lmtt-10">p0 </span>of the
-interface of the <span
-class="ec-lmtt-10">Optional </span>actor class.
-</p><!--l. 78--><p class="noindent" >After creation of <span
-class="ec-lmtt-10">Optional2 </span>the interesting part of the dumped tree is
-
-
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.2.3 </span> <a
+ id="x16-770003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">use abstraction levels to break a problem into smaller pieces.</li></ul>
+<a
+ id="x16-77001r95"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.1.3 </span> <a
+ id="x16-780003"></a>Traffic light - step 3</h4>
+<!--l. 128--><p class="noindent" >The main ROOM model and the mapping model of this example is contained in <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.c/model/TrafficLight_step3</span>.
+It also contains launch configurations for the code generation, for launching the simulator GUI and for running the
+application.
+<a
+ id="x16-78001r98"></a>
</p>
-<div class="verbatim" id="verbatim-13">
-&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ScalarOptionalActorInterface(className=Optional,&#x00A0;instancePath=/LS/main/appl/cont/opt)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Optional2,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=AC2,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt/sub2)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=AC3,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt/sub2/deep_sub)
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort1
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort2
-</div>
-<!--l. 94--><p class="nopar" >
-</p><!--l. 96--><p class="noindent" >It can be seen that the sub tree corresponding to <span
-class="ec-lmtt-10">Optional2 </span>was inserted right below the <span
-class="ec-lmtt-10">ScalarOptionalActorInterface</span>.
-</p><!--l. 99--><p class="noindent" >After deletion of the optional actor the dumped instance tree looks exactly as in the beginning.
-</p><!--l. 101--><p class="noindent" >To illustrate the dynamic behavior of the system we can finally have a look at the generated sequence diagram <a
-href="#x16-71041r1">4.1<!--tex4ht:ref: fig:dynact1_msc --></a>.
-During the sub system initialization three actor instances are created. Then the system is started and the
-<span
-class="ec-lmtt-10">Container </span>actor dynamically creates an instance of <span
-class="ec-lmtt-10">Optional2</span>. This is indicated by the note on the life line of
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.3.1 </span> <a
+ id="x16-790001"></a>Purpose</h5>
+<!--l. 136--><p class="noindent" >This example shows the control of two blocks of traffic lights each containing a car light and a light for the pedestrians. It
+uses a replicated stack of actors as introduced in step 2.
+<a
+ id="x16-79001r100"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.3.2 </span> <a
+ id="x16-800002"></a>Details</h5>
+<!--l. 142--><p class="noindent" >The head quarters actor of this example controls two blocks of traffic lights. It already has a replicated port which is now
+connected to a doubled <span
+class="ec-lmtt-10">PedestrianTrafficLightController</span>. Of course the replication then has also to be applied to the
+other levels of the stack introduced in step 2.
+</p><!--l. 148--><p class="noindent" >To run the test first generate the code using <span
+class="ec-lmtt-10">gen_TrafficLight_step3.launch</span>, then compile and link it (using the
+CDTbuild). Since this step uses a GUI with a two blocks of lights you&#8217;ll have to launch the simulator using
<span
-class="ec-lmtt-10">/LS/main/appl/cont</span>. Then <span
-class="ec-lmtt-10">sayHello() </span>is sent and the answer <span
-class="ec-lmtt-10">hello() </span>is received and the optional actor is destroyed
-again.
-</p><!--l. 108--><p class="noindent" >The same is repeated with a new optional instance of <span
-class="ec-lmtt-10">Optional1</span>.
+class="ec-lmtt-10">run_simulator_2_blocks.launch</span>. Then you can just start the application using <span
+class="ec-lmtt-10">run_TrafficLight_step3.launch</span>.
+<a
+ id="x16-80001r101"></a>
</p>
-<hr class="figure" /><div class="figure"
->
-
-
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.3.3 </span> <a
+ id="x16-810003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">use replication for multiple instances of the same.</li></ul>
<a
- id="x16-71041r1"></a>
-
-
-<!--l. 111--><p class="noindent" ><img
-src="images/039-DynAct1-MSC.jpg" alt="PIC"
- />
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;4.1: </span><span
-class="content">Sequence diagram of Dynamic Actors Example 1</span></div><!--tex4ht:label?: x16-71041r1 -->
+ id="x16-81001r99"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.1.4 </span> <a
+ id="x16-820004"></a>Traffic light - step 4</h4>
+<!--l. 163--><p class="noindent" >The main ROOM model and the mapping model of this example is contained in <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.c/model/TrafficLight_step4</span>.
+It also contains launch configurations for the code generation, for launching the simulator GUI and for running the
+application.
+<a
+ id="x16-82001r102"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.4.1 </span> <a
+ id="x16-830001"></a>Purpose</h5>
+<!--l. 171--><p class="noindent" >This example shows the control of two blocks of traffic lights each containing a car light and a light for the pedestrians. It
+uses a container actor for the three lower levels of the stack introduced in step 2. Then replication has to applied only to the
+container actor which simplifies the task.
+<a
+ id="x16-83001r104"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.4.2 </span> <a
+ id="x16-840002"></a>Details</h5>
+<!--l. 179--><p class="noindent" >The head quarters actor of this example controls two blocks of traffic lights. It already has a replicated port which is now
+connected to a doubled <span
+class="ec-lmtt-10">TrafficLightControllerWithInfrastructure</span>. The latter one
+<a
+ id="x16-84001r105"></a>
-</div><hr class="endfigure" />
-<a
- id="x16-71042r92"></a>
-<h4 class="subsectionHead"><span class="titlemark">4.1.3 </span> <a
- id="x16-720003"></a>Noteworthy</h4>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.1.4.3 </span> <a
+ id="x16-850003"></a>Noteworthy</h5>
<ul class="itemize1">
- <li class="itemize">To obtain an executable the launch configuration <span
-class="ec-lmtt-10">gen_DynAct1_sys.launch </span>has to be executed. In this case
- also the SubsystemClass <span
-class="ec-lmtt-10">Node_nodeRef1_main </span>is generated as well as factory classes for the valid optional
- actors. If <span
-class="ec-lmtt-10">Optional </span>were not <span
-class="ec-lmtt-10">abstract </span>then also for this class a factory is created. However, in this class the
- relay port isn&#8217;t connected and a request <span
-class="ec-lmtt-10">sayHello() </span>would be left without reply.
- </li>
- <li class="itemize">To generate a library the launch configuration <span
-class="ec-lmtt-10">gen_DynAct1.launch </span>has to be executed. In this case no factory
- classes are generated.</li></ul>
+ <li class="itemize">use hierarchy to group levels functionality to reusable blocks.</li></ul>
-<!--l. 129--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 190--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse11.html" >next</a>] [<a
href="etrice-docch4.html" >prev</a>] [<a
href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
href="etrice-docse10.html" >front</a>] [<a
href="etrice-docch4.html#etrice-docse10.html" >up</a>] </p></div>
-<!--l. 129--><p class="noindent" ><a
+<!--l. 190--><p class="noindent" ><a
id="tailetrice-docse10.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
index a8356a983..508ca26b6 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
@@ -4,66 +4,835 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 2</title>
+<head><title>The Java examples project</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 129--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse12.html" >next</a>] [<a
+<!--l. 190--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch5.html" >next</a>] [<a
href="etrice-docse10.html" >prev</a>] [<a
href="etrice-docse10.html#tailetrice-docse10.html" >prev-tail</a>] [<a
href="#tailetrice-docse11.html">tail</a>] [<a
href="etrice-docch4.html#etrice-docse11.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">4.2 </span> <a
- id="x17-730002"></a>Dynamic Actors 2</h3>
-<!--l. 131--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors2</span>.
+ id="x17-860002"></a>The Java examples project</h3>
+<!--l. 192--><p class="noindent" >The example project <span
+class="ec-lmtt-10">org.eclipse.etrice.examples.java </span>currently contains a number of examples that are all related to
+dynamic actors.
+</p><!--l. 195--><p class="noindent" >The examples can be generated and executed one by one but not several at the same time. Inside the model folder there
+exists a sub folder for each example containing all models and launch configurations for code generation and to run the
+application.
<a
- id="x17-73001r95"></a>
+ id="x17-86001r103"></a>
</p>
<h4 class="subsectionHead"><span class="titlemark">4.2.1 </span> <a
- id="x17-740001"></a>Purpose</h4>
-<!--l. 135--><p class="noindent" >A modified version of <span
-class="ec-lmtt-10">dynamicactors1 </span>is used to analyze eventual memory leaks of the application.
+ id="x17-870001"></a>Dynamic Actors 1</h4>
+<!--l. 202--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors1</span>.
+<a
+ id="x17-87001r106"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.1.1 </span> <a
+ id="x17-880001"></a>Purpose</h5>
+<!--l. 206--><p class="noindent" >The example demonstrates the usage of an optional actor. It is shown that several actor classes derived from the type of the
+optional actor reference can be optionally created in place of the optional actor reference. Optional actor instances can also
+be destroyed and another instance can be created in the free slot.
<a
- id="x17-74001r97"></a>
+ id="x17-88001r109"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.1.2 </span> <a
+ id="x17-890002"></a>Details</h5>
+<!--l. 213--><p class="noindent" >The structure of this system is simple.
+</p><!--l. 215--><p class="noindent" ><img
+src="images/039-DynAct1-Main_instanceTree.jpg" alt="PIC"
+ />
+</p><!--l. 217--><p class="noindent" >However, this is only the initial system structure. The leaf instance is just a place holder for an optional actor instance. In this
+place an instance of a compatible type can be created at run time. Compatible types are the type of the reference itself and
+all of its sub types as long as they are not abstract. Together with the instance all of its contained instances will be created
+and all ports are connected.
+</p><!--l. 223--><p class="noindent" >This example demonstrates how an optional actor is created and destroyed and another one of another type is created to hold
+the same place.
+</p><!--l. 226--><p class="noindent" ><img
+src="images/039-DynAct1-Container_behavior.jpg" alt="PIC"
+ />
+</p><!--l. 228--><p class="noindent" >When the example is executed the <span
+class="ec-lmtt-10">Container </span>actor first dumps the instance tree to the console (line 56 of the listing below).
+Then it creates an instance of <span
+class="ec-lmtt-10">Optional2 </span>(line 57). Now that the <span
+class="ec-lmtt-10">p0 </span>port of the container is connected a message
+<span
+class="ec-lmtt-10">sayHello() </span>is sent to the newly created actor instance and the instance tree is dumped a second time. As soon as it receives
+the answer it prints it to the console. Then the optional actor is destroyed again and another one, now of type <span
+class="ec-lmtt-10">Optional1</span>, is
+created and once more <span
+class="ec-lmtt-10">sayHello() </span>is sent.
</p>
+<!--l. 236--><div class="lstinputlisting">
+<a
+ id="x17-89001r1"></a>
+<a
+ id="x17-89002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89003r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">StateMachine</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89004r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89005r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr0</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89006r39"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89007r40"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">hello</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">p0</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89008r41"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89009r42"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">action</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89010r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">System</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">out</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">println</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">txt</span><span
+class="ec-lmtt-9">+\"\\</span><span
+class="ec-lmtt-9">n</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89011r44"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">opt</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">destroyOptionalActor</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89012r45"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">dumpTree</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">after</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">deletion</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Optional2</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89013r46"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89014r47"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89015r48"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ReceivedHelloAgain</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89016r49"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89017r50"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">hello</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">p0</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89018r51"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89019r52"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">action</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89020r53"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">System</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">out</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">println</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">txt</span><span
+class="ec-lmtt-9">+\"\\</span><span
+class="ec-lmtt-9">n</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89021r54"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">opt</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">destroyOptionalActor</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89022r55"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89023r56"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89024r57"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89025r58"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89026r59"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">dumpTree</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">before</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Optional2</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89027r60"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">opt</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">createOptionalActor</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">Optional2</span><span
+class="ec-lmtt-9">\",</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">getThread</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89028r61"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">p0</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">sayHello</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89029r62"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">dumpTree</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">after</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Optional2</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89030r63"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89031r64"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89032r65"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">CreateOptional1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89033r66"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89034r67"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">opt</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">createOptionalActor</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">Optional1</span><span
+class="ec-lmtt-9">\",</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">getThread</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89035r68"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">p0</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">sayHello</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89036r69"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">dumpTree</span><span
+class="ec-lmtt-9">(\"</span><span
+class="ec-lmtt-9">after</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Optional1</span><span
+class="ec-lmtt-9">\")</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89037r70"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89038r71"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89039r72"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ReceivedHelloAgain</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-89040r73"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.1:
+ </span><span
+class="content">Container
+ actor
+ state
+ machine</span></div><!--tex4ht:label?: x17-890004 -->
+
+
+</div>
+<!--l. 238--><p class="noindent" >The console output of the running application starts with
+
+
+</p>
+<div class="verbatim" id="verbatim-12">
+***&#x00A0;&#x00A0;&#x00A0;T&#x00A0;H&#x00A0;E&#x00A0;&#x00A0;&#x00A0;B&#x00A0;E&#x00A0;G&#x00A0;I&#x00A0;N&#x00A0;&#x00A0;&#x00A0;***
+&#x00A0;<br />***&#x00A0;MainComponent&#x00A0;/LS/main::init&#x00A0;***
+&#x00A0;<br />type&#x00A0;&#8217;quit&#8217;&#x00A0;to&#x00A0;exit
+&#x00A0;<br />before&#x00A0;creation&#x00A0;of&#x00A0;Optional2
+&#x00A0;<br />LS
+&#x00A0;<br />&#x00A0;&#x00A0;main
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;MessageService_MessageService_PhysicalThread1
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Dispatcher
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Queue
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Appl,&#x00A0;instancePath=/LS/main/appl)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Container,&#x00A0;instancePath=/LS/main/appl/cont)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ScalarOptionalActorInterface(className=Optional,&#x00A0;instancePath=/LS/main/appl/cont/opt)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort1
+</div>
+<!--l. 261--><p class="nopar" >
+</p><!--l. 263--><p class="noindent" >The <span
+class="ec-lmtt-10">ScalarOptionalActorInterface(className=Optional, instancePath=/LS/main/appl/cont/opt) </span>is an object
+which is responsible for the life cycle of the dynamic actor (including its contained instances) and for the mediation of the
+port connections. It contains a replicated <span
+class="ec-lmtt-10">RTSystemPort </span>which is used to trigger the initial transition and the port <span
+class="ec-lmtt-10">p0 </span>of the
+interface of the <span
+class="ec-lmtt-10">Optional </span>actor class.
+</p><!--l. 268--><p class="noindent" >After creation of <span
+class="ec-lmtt-10">Optional2 </span>the interesting part of the dumped tree is
+
+
+</p>
+<div class="verbatim" id="verbatim-13">
+&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ScalarOptionalActorInterface(className=Optional,&#x00A0;instancePath=/LS/main/appl/cont/opt)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=Optional2,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=AC2,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt/sub2)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ActorClass(className=AC3,&#x00A0;instancePath=/LS/main/appl/cont/opt/opt/sub2/deep_sub)
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;p0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort0
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort1
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;port&#x00A0;RTSystemPort2
+</div>
+<!--l. 284--><p class="nopar" >
+</p><!--l. 286--><p class="noindent" >It can be seen that the sub tree corresponding to <span
+class="ec-lmtt-10">Optional2 </span>was inserted right below the <span
+class="ec-lmtt-10">ScalarOptionalActorInterface</span>.
+</p><!--l. 289--><p class="noindent" >After deletion of the optional actor the dumped instance tree looks exactly as in the beginning.
+</p><!--l. 291--><p class="noindent" >To illustrate the dynamic behavior of the system we can finally have a look at the generated sequence diagram <a
+href="#x17-89041r1">4.1<!--tex4ht:ref: fig:dynact1_msc --></a>.
+During the sub system initialization three actor instances are created. Then the system is started and the
+<span
+class="ec-lmtt-10">Container </span>actor dynamically creates an instance of <span
+class="ec-lmtt-10">Optional2</span>. This is indicated by the note on the life line of
+<span
+class="ec-lmtt-10">/LS/main/appl/cont</span>. Then <span
+class="ec-lmtt-10">sayHello() </span>is sent and the answer <span
+class="ec-lmtt-10">hello() </span>is received and the optional actor is destroyed
+again.
+</p><!--l. 298--><p class="noindent" >The same is repeated with a new optional instance of <span
+class="ec-lmtt-10">Optional1</span>.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x17-89041r1"></a>
+
+
+<!--l. 301--><p class="noindent" ><img
+src="images/039-DynAct1-MSC.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.1: </span><span
+class="content">Sequence diagram of Dynamic Actors Example 1</span></div><!--tex4ht:label?: x17-89041r1 -->
+
+
+</div><hr class="endfigure" />
+<a
+ id="x17-89042r110"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.1.3 </span> <a
+ id="x17-900003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">To obtain an executable the launch configuration <span
+class="ec-lmtt-10">gen_DynAct1_sys.launch </span>has to be executed. In this case
+ also the SubsystemClass <span
+class="ec-lmtt-10">Node_nodeRef1_main </span>is generated as well as factory classes for the valid optional
+ actors. If <span
+class="ec-lmtt-10">Optional </span>were not <span
+class="ec-lmtt-10">abstract </span>then also for this class a factory is created. However, in this class the
+ relay port isn&#8217;t connected and a request <span
+class="ec-lmtt-10">sayHello() </span>would be left without reply.
+ </li>
+ <li class="itemize">To generate a library the launch configuration <span
+class="ec-lmtt-10">gen_DynAct1.launch </span>has to be executed. In this case no factory
+ classes are generated.</li></ul>
+<a
+ id="x17-90001r108"></a>
<h4 class="subsectionHead"><span class="titlemark">4.2.2 </span> <a
- id="x17-750002"></a>Details</h4>
-<!--l. 139--><p class="noindent" >In this modified version creation and deletion of optional actors is looped. Each loop consists of 4 steps:
+ id="x17-910002"></a>Dynamic Actors 2</h4>
+<!--l. 321--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors2</span>.
+<a
+ id="x17-91001r113"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.2.1 </span> <a
+ id="x17-920001"></a>Purpose</h5>
+<!--l. 325--><p class="noindent" >A modified version of <span
+class="ec-lmtt-10">dynamicactors1 </span>is used to analyze eventual memory leaks of the application.
+<a
+ id="x17-92001r115"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.2.2 </span> <a
+ id="x17-930002"></a>Details</h5>
+<!--l. 329--><p class="noindent" >In this modified version creation and deletion of optional actors is looped. Each loop consists of 4 steps:
</p><ol class="enumerate1" >
<li
- class="enumerate" id="x17-75002x1">create an instance of <span
+ class="enumerate" id="x17-93002x1">create an instance of <span
class="ec-lmtt-10">Optional2</span>
</li>
<li
- class="enumerate" id="x17-75004x2">destroy the instance
+ class="enumerate" id="x17-93004x2">destroy the instance
</li>
<li
- class="enumerate" id="x17-75006x3">create an instance of <span
+ class="enumerate" id="x17-93006x3">create an instance of <span
class="ec-lmtt-10">Optional1</span>
</li>
<li
- class="enumerate" id="x17-75008x4">destroy the instance</li></ol>
-<!--l. 149--><p class="noindent" >All together 600 steps are performed which corresponds to 300 creations and deletions.
-</p><!--l. 151--><p class="noindent" >The free memory is printed to the console. Also the overall execution time is measured. After the loop is finished the heap is
+ class="enumerate" id="x17-93008x4">destroy the instance</li></ol>
+<!--l. 339--><p class="noindent" >All together 600 steps are performed which corresponds to 300 creations and deletions.
+</p><!--l. 341--><p class="noindent" >The free memory is printed to the console. Also the overall execution time is measured. After the loop is finished the heap is
analyzed using <span
class="ec-lmtt-10">JConsole </span>(which is a part of the Java6 distribution) to dump the heap and <a
href="http://www.eclipse.org/mat/" ><span
class="ec-lmtt-10">org.eclipse.mat</span></a> to analyze
it.
-</p><!--l. 156--><p class="noindent" >The measured total execution time on a Intel Core 2 Duo at 2.66 GHz was 110 ms. This corresponds to about 370
+</p><!--l. 346--><p class="noindent" >The measured total execution time on a Intel Core 2 Duo at 2.66 GHz was 110 ms. This corresponds to about 370
<span
class="lmmi-10">&#x03BC;</span>s.
-</p><!--l. 159--><p class="noindent" >The result of the heap analysis for <span
+</p><!--l. 349--><p class="noindent" >The result of the heap analysis for <span
class="ec-lmtt-10">org.eclipse.etrice.* </span>objects is listed in figure <a
-href="#x17-75009r2">4.2<!--tex4ht:ref: fig:dynact2_heap --></a>. The small numbers per object and
+href="#x17-93009r2">4.2<!--tex4ht:ref: fig:dynact2_heap --></a>. The small numbers per object and
the retained heap size indicate that the application has no memory leak.
</p>
<hr class="figure" /><div class="figure"
@@ -71,35 +840,288 @@ the retained heap size indicate that the application has no memory leak.
<a
- id="x17-75009r2"></a>
+ id="x17-93009r2"></a>
-<!--l. 163--><p class="noindent" ><img
+<!--l. 353--><p class="noindent" ><img
src="images/039-DynAct2-HeapAnalysis.jpg" alt="PIC"
/>
<br /> </p><div class="caption"
><span class="id">Figure&#x00A0;4.2: </span><span
-class="content">Heap analysis after 600 steps</span></div><!--tex4ht:label?: x17-75009r2 -->
+class="content">Heap analysis after 600 steps</span></div><!--tex4ht:label?: x17-93009r2 -->
</div><hr class="endfigure" />
<a
- id="x17-75010r98"></a>
-<h4 class="subsectionHead"><span class="titlemark">4.2.3 </span> <a
- id="x17-760003"></a>Noteworthy</h4>
+ id="x17-93010r116"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.2.3 </span> <a
+ id="x17-940003"></a>Noteworthy</h5>
<ul class="itemize1">
<li class="itemize">Calling the garbage collector every time before the free memory is dumped costs a significant amount of time
and the execution time is increased to the order of seconds.
</li>
<li class="itemize">The measured free memory is close to constant. Only a small step is observed which wasn&#8217;t analyzed further.</li></ul>
+<a
+ id="x17-94001r114"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.3 </span> <a
+ id="x17-950003"></a>Dynamic Actors 3</h4>
+<!--l. 368--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors3</span>.
+<a
+ id="x17-95001r118"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.3.1 </span> <a
+ id="x17-960001"></a>Purpose</h5>
+<!--l. 372--><p class="noindent" >The example demonstrates the usage of an optional actor array. It is shown that several actor classes derived from the type of
+the optional actor reference can be created as array members. The array members can be destroyed in arbitrary order and the
+array size grows and shrinks as appropriate.
+<a
+ id="x17-96001r120"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.3.2 </span> <a
+ id="x17-970002"></a>Details</h5>
+<!--l. 378--><p class="noindent" >This example again is similar to example 1. One difference is that the (scalar) optional actor is replaced by a replicated
+optional actor (or array of optional actors if you wish). The port of the <span
+class="ec-lmtt-10">Container </span>was also changed to a replicated port. All
+replication factors in this example are of arbitrary multiplicity (*). The sizes vary dynamically and are unbound as far as the
+model is concerned.
+</p><!--l. 383--><p class="noindent" >The behavior was changed to the following: Two instances of different classes are created as members of this array and both
+are deleted and one is created again. The replicated port is used to send (broadcast) messages to the optional
+actors.
+<a
+ id="x17-97001r121"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.3.3 </span> <a
+ id="x17-980003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure
+ </li>
+ <li class="itemize">careful inspection of the console output reveals that objects are created and destroyed as expected</li></ul>
+<a
+ id="x17-98001r119"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.4 </span> <a
+ id="x17-990004"></a>Dynamic Actors 4</h4>
+<!--l. 396--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors4</span>.
+<a
+ id="x17-99001r122"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.4.1 </span> <a
+ id="x17-1000001"></a>Purpose</h5>
+<!--l. 400--><p class="noindent" >The example demonstrates the usage of an optional actor. But here not the actor containing the optional reference is
+communicating with the optional actor but one level above.
+<a
+ id="x17-100001r124"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.4.2 </span> <a
+ id="x17-1010002"></a>Details</h5>
+<!--l. 405--><p class="noindent" >The <span
+class="ec-lmtt-10">Controller </span>which has a reference to the <span
+class="ec-lmtt-10">Container </span>is asking the latter for the creation of the dynamic actor. When it
+receives <span
+class="ec-lmtt-10">ok() </span>it is requesting <span
+class="ec-lmtt-10">sayHello() </span>from the newly created actor.
+
+
+</p><!--l. 409--><p class="noindent" >After the <span
+class="ec-lmtt-10">Controller </span>receives <span
+class="ec-lmtt-10">hello() </span>it tells the <span
+class="ec-lmtt-10">Container </span>to create another actor which fails because the old one is still
+in place.
+<a
+ id="x17-101001r125"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.4.3 </span> <a
+ id="x17-1020003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<a
+ id="x17-102001r123"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.5 </span> <a
+ id="x17-1030005"></a>Dynamic Actors 5</h4>
+<!--l. 420--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors5</span>.
+<a
+ id="x17-103001r126"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.5.1 </span> <a
+ id="x17-1040001"></a>Purpose</h5>
+<!--l. 424--><p class="noindent" >The example shows that the optional actor can not only have relay ports but also external end ports.
+<a
+ id="x17-104001r128"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.5.2 </span> <a
+ id="x17-1050002"></a>Details</h5>
+<!--l. 428--><p class="noindent" >This simple example just shows that the optional actor may directly handle inbound messages by using an external end port
+rather than the relay port of the previous examples.
+<a
+ id="x17-105001r129"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.5.3 </span> <a
+ id="x17-1060003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<a
+ id="x17-106001r127"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.6 </span> <a
+ id="x17-1070006"></a>Dynamic Actors 6</h4>
+<!--l. 439--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors6</span>.
+<a
+ id="x17-107001r130"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.6.1 </span> <a
+ id="x17-1080001"></a>Purpose</h5>
+<!--l. 443--><p class="noindent" >The example demonstrates the use of nested dynamic actors.
+<a
+ id="x17-108001r132"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.6.2 </span> <a
+ id="x17-1090002"></a>Details</h5>
+<!--l. 447--><p class="noindent" >In this example the dynamically created actor <span
+class="ec-lmtt-10">Optional2 </span>has again an optional reference two levels down in its hierarchy. On
+creation it immediately creates a nested dynamic actor of class <span
+class="ec-lmtt-10">Optional1 </span>which is sending <span
+class="ec-lmtt-10">hello() </span>back to the outer
+<span
+class="ec-lmtt-10">Container</span>.
+<a
+ id="x17-109001r133"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.6.3 </span> <a
+ id="x17-1100003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure
+ </li>
+ <li class="itemize">when a dynamic actor is created its structure is there immediately and all ports are connected. But the initial
+ transition is executed asynchronously. So after the outer dynamic actor is created the port of the <span
+class="ec-lmtt-10">Container</span>
+ is not yet connected because the initial transition which is responsible for the creation of the inner dynamic
+ actor wasn&#8217;t executed yet. So a message sent from this port directly after creation of the outer dynamic actor
+ would get lost.</li></ul>
-<!--l. 176--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse12.html" >next</a>] [<a
+<a
+ id="x17-110001r131"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.7 </span> <a
+ id="x17-1110007"></a>Dynamic Actors 7</h4>
+<!--l. 463--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors7</span>.
+<a
+ id="x17-111001r134"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.7.1 </span> <a
+ id="x17-1120001"></a>Purpose</h5>
+<!--l. 467--><p class="noindent" >The example demonstrates the use of communication between two optional actors.
+<a
+ id="x17-112001r136"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.7.2 </span> <a
+ id="x17-1130002"></a>Details</h5>
+<!--l. 471--><p class="noindent" >In this example two sub trees of dynamic actors are created. The container is sending a message to one of them which is
+forwarding it to the other one which in turn is replying back to the container.
+<a
+ id="x17-113001r137"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.7.3 </span> <a
+ id="x17-1140003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<a
+ id="x17-114001r135"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.8 </span> <a
+ id="x17-1150008"></a>Dynamic Actors 8</h4>
+<!--l. 482--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors8</span>.
+<a
+ id="x17-115001r138"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.8.1 </span> <a
+ id="x17-1160001"></a>Purpose</h5>
+<!--l. 486--><p class="noindent" >The example demonstrates the use of the persistence interface for dynamic actors.
+<a
+ id="x17-116001r140"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.8.2 </span> <a
+ id="x17-1170002"></a>Details</h5>
+<!--l. 490--><p class="noindent" >Dynamic actors can be persisted and restored. To this end the user has to pass an <span
+class="ec-lmtt-10">java.io.ObjectOutput </span>to
+the creation method (<span
+class="ec-lmtt-10">createOptionalActor()</span>) and an <span
+class="ec-lmtt-10">java.io.ObjectInput </span>to the deletion method
+(<span
+class="ec-lmtt-10">destroyOptionalActor()</span>).
+</p><!--l. 493--><p class="noindent" >The code generation has to be invoked with the <span
+class="ec-lmtt-10">-persistable </span>(e.g. by setting the &#8217;generate persistence interface&#8217; flag in the
+Java Generator tab of the launch configuration). This lets the generator implement the <span
+class="ec-lmtt-10">IPersistable </span>interface for actor
+classes.
+</p><!--l. 496--><p class="noindent" >The example adds a manually coded very simple <span
+class="ec-lmtt-10">FilePersistor </span>with four static methods for creation and deletion of scalar
+and replicated dynamic actors.
+</p><!--l. 499--><p class="noindent" >The <span
+class="ec-lmtt-10">Container </span>class first creates an optional actor of type <span
+class="ec-lmtt-10">Optional1 </span>in the scalar reference <span
+class="ec-lmtt-10">opt</span>. Then messages are sent
+to this actor instance which lead to some state changes. Finally it is saved and destroyed. Now another actor class is
+instantiated in the same actor reference and also destroyed. Then the first instance is loaded from file. It directly starts in the
+state it had when it was saved. The second part of the example loads copies of the two instances created in the beginning
+into the <span
+class="ec-lmtt-10">optarr </span>reference.
+<a
+ id="x17-117001r141"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.8.3 </span> <a
+ id="x17-1180003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize">the generated MSC <span
+class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<a
+ id="x17-118001r139"></a>
+<h4 class="subsectionHead"><span class="titlemark">4.2.9 </span> <a
+ id="x17-1190009"></a>Dynamic Actors 9</h4>
+<!--l. 513--><p class="noindent" >This example is contained in <span
+class="ec-lmtt-10">model/dynamicactors9</span>.
+
+
+<a
+ id="x17-119001r142"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.9.1 </span> <a
+ id="x17-1200001"></a>Purpose</h5>
+<!--l. 517--><p class="noindent" >The example demonstrates the use of SAPs in dynamic actors.
+<a
+ id="x17-120001r144"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.9.2 </span> <a
+ id="x17-1210002"></a>Details</h5>
+<!--l. 521--><p class="noindent" >This simple example re-uses the PingPong tutorial. The static part of the system introduces a <span
+class="ec-lmtt-10">TimingService </span>as SPP and
+the <span
+class="ec-lmtt-10">Receiver </span>embedded in the optional part uses a SAP of this protocol.
+</p><!--l. 524--><p class="noindent" >The sub system during initialization adds broker ports to the optional actor interface that are connected to all available
+services.
+</p><!--l. 527--><p class="noindent" >On the other hand the factory for the optional actor maps SAPs to those broker ports.
+<a
+ id="x17-121001r145"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">4.2.9.3 </span> <a
+ id="x17-1220003"></a>Noteworthy</h5>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">Caution: </span>currently the generator informs about unsatisfied services in dynamic actors. But it is still possible to
+ create such an instance. The consequence is an unbound SAP</li></ul>
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch5.html" >next</a>] [<a
href="etrice-docse10.html" >prev</a>] [<a
href="etrice-docse10.html#tailetrice-docse10.html" >prev-tail</a>] [<a
href="etrice-docse11.html" >front</a>] [<a
href="etrice-docch4.html#etrice-docse11.html" >up</a>] </p></div>
-<!--l. 176--><p class="noindent" ><a
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse11.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
index ccdb187c3..837818cef 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
@@ -4,65 +4,777 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 3</title>
+<head><title>Actors</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 176--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 8--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse13.html" >next</a>] [<a
-href="etrice-docse11.html" >prev</a>] [<a
-href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="#tailetrice-docse12.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse12.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.3 </span> <a
- id="x18-770003"></a>Dynamic Actors 3</h3>
-<!--l. 178--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors3</span>.
+href="etrice-docch5.html#etrice-docse12.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.1 </span> <a
+ id="x19-1240001"></a>Actors</h3>
<a
- id="x18-77001r100"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.1 </span> <a
- id="x18-780001"></a>Purpose</h4>
-<!--l. 182--><p class="noindent" >The example demonstrates the usage of an optional actor array. It is shown that several actor classes derived from the type of
-the optional actor reference can be created as array members. The array members can be destroyed in arbitrary order and the
-array size grows and shrinks as appropriate.
+ id="x19-124001r143"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.1.1 </span> <a
+ id="x19-1250001"></a>Description</h4>
+<!--l. 12--><p class="noindent" >The actor is the basic structural building block for building systems with ROOM. An actor can be refined hierarchically and
+thus can be of arbitrarily large scope. Ports define the interface of an actor. An actor can also have a behavior usually defined
+by a finite state machine.
<a
- id="x18-78001r102"></a>
+ id="x19-125001r149"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.2 </span> <a
- id="x18-790002"></a>Details</h4>
-<!--l. 188--><p class="noindent" >This example again is similar to example 1. One difference is that the (scalar) optional actor is replaced by a replicated
-optional actor (or array of optional actors if you wish). The port of the <span
-class="ec-lmtt-10">Container </span>was also changed to a replicated port. All
-replication factors in this example are of arbitrary multiplicity (*). The sizes vary dynamically and are unbound as far as the
-model is concerned.
-</p><!--l. 193--><p class="noindent" >The behavior was changed to the following: Two instances of different classes are created as members of this array and both
-are deleted and one is created again. The replicated port is used to send (broadcast) messages to the optional
-actors.
+
+
+<h4 class="subsectionHead"><span class="titlemark">5.1.2 </span> <a
+ id="x19-1260002"></a>Motivation</h4>
+ <ul class="itemize1">
+ <li class="itemize">Actors enable the construction of hierarchical structures by composition and layering
+ </li>
+ <li class="itemize">Actors have their own logical thread of execution
+ </li>
+ <li class="itemize">Actors can be freely deployed
+ </li>
+ <li class="itemize">Actors define potentially re-usable blocks</li></ul>
+<a
+ id="x19-126001r150"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.1.3 </span> <a
+ id="x19-1270003"></a>Notation</h4>
+<div class="table">
+
+
+<!--l. 30--><p class="noindent" ><a
+ id="x19-127001r1"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.1: </span><span
+class="content">Actor Class Notation</span></div><!--tex4ht:label?: x19-127001r1 -->
+<div class="tabular"> <table id="TBL-3" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-3-1g"><col
+id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col
+id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col
+id="TBL-3-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
+class="td11"> <span
+class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3"
+class="td11"> <span
+class="ec-lmssbx-10">Textual Notation </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
+class="td11"> ActorClass </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
+class="td11"> <img
+src="images/040-ActorClassNotation.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3"
+class="td11"> <!--l. 36--> <!--l. 36--><p class="noindent" ><div class="lstlisting" id="listing-30"><span class="label"><a
+ id="x19-127002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{}</span>
+ </p> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
+class="td11"> ActorRef </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
+class="td11"> <img
+src="images/040-ActorReferenceNotation.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3"
+class="td11"> <!--l. 41--> <!--l. 41--><p class="noindent" ><div class="lstlisting" id="listing-31"><span class="label"><a
+ id="x19-127003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-127004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-127005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorReference</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-127006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-127007r5"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
+<a
+ id="x19-127008r151"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.1.4 </span> <a
+ id="x19-1280004"></a>Details</h4>
<a
- id="x18-79001r103"></a>
+ id="Q1-19-154"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x19-1290004"></a>Actor Classes, Actor References, Ports and Bindings</h5>
+<!--l. 57--><p class="noindent" >An <span id="textcolor1"><span
+class="ec-lmssbx-10">ActorClass</span></span> defines the type (or blueprint) of an actor. Hierarchies are built by <span id="textcolor2"><span
+class="ec-lmssbx-10">ActorClass</span></span>es that contain
+<span id="textcolor3"><span
+class="ec-lmssbx-10">ActorRef</span></span>erences which have another <span id="textcolor4"><span
+class="ec-lmssbx-10">ActorClass</span></span> as type. The interface of an <span id="textcolor5"><span
+class="ec-lmssbx-10">ActorClass</span></span> is always defined by <span id="textcolor6"><span
+class="ec-lmssbx-10">Port</span></span>s. The
+<span id="textcolor7"><span
+class="ec-lmssbx-10">ActorClass</span></span> can also contain <span id="textcolor8"><span
+class="ec-lmssbx-10">Attribute</span></span>s, <span id="textcolor9"><span
+class="ec-lmssbx-10">Operation</span></span>s and a finite <span id="textcolor10"><span
+class="ec-lmssbx-10">StateMachine</span></span>.
+</p><!--l. 63--><p class="noindent" >External <span id="textcolor11"><span
+class="ec-lmssbx-10">Port</span></span>s define the external interface of an actor and are defined in the <span id="textcolor12"><span
+class="ec-lmssbx-10">Interface</span></span> section of the <span id="textcolor13"><span
+class="ec-lmssbx-10">ActorClass</span></span>.
+</p><!--l. 66--><p class="noindent" >Internal <span id="textcolor14"><span
+class="ec-lmssbx-10">Port</span></span>s define the internal interface of an actor and are defined in the <span id="textcolor15"><span
+class="ec-lmssbx-10">Structure</span></span> section of the <span id="textcolor16"><span
+class="ec-lmssbx-10">ActorClass</span></span>.
+</p><!--l. 69--><p class="noindent" ><span id="textcolor17"><span
+class="ec-lmssbx-10">Binding</span></span>s connect <span id="textcolor18"><span
+class="ec-lmssbx-10">Port</span></span>s inside an <span id="textcolor19"><span
+class="ec-lmssbx-10">ActorClass</span></span>.
+</p><!--l. 71--><p class="noindent" >Let us have a look at example <a
+href="#x19-129001r2">5.2<!--tex4ht:ref: tab:actor_class_example --></a>:
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.3 </span> <a
- id="x18-800003"></a>Noteworthy</h4>
+<div class="table">
+
+
+<!--l. 74--><p class="noindent" ><a
+ id="x19-129001r2"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.2: </span><span
+class="content">Actor Class Example</span></div><!--tex4ht:label?: x19-129001r2 -->
+<div class="tabular"> <table id="TBL-4" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-4-1g"><col
+id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col
+id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col
+id="TBL-4-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Textual Notation </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
+class="td11"> <img
+src="images/040-ActorClass.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
+class="td11"> <!--l. 80--> <!--l. 80--><p class="noindent" ><div class="lstlisting" id="listing-32"><span class="label"><a
+ id="x19-129002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port4</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129009r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129010r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port3</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129011r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129012r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass3</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129013r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port5</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129014r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port3</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port6</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129015r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port7</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port4</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129016r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port8</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port9</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129017r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-129018r17"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
<ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure
+ <li class="itemize"><span
+class="ec-lmsso-10">ActorClass1 </span>contains two <span id="textcolor20"><span
+class="ec-lmssbx-10">ActorRef</span></span>erences (of ActorClass2 and ActorClass3)
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">port1 </span>is an <span
+class="ec-lmsso-10">external end port</span>. Since it connects external actors with the behavior of the <span id="textcolor21"><span
+class="ec-lmssbx-10">ActorClass</span></span>, it is
+ defined in the <span id="textcolor22"><span
+class="ec-lmssbx-10">Interface</span></span> section and the <span id="textcolor23"><span
+class="ec-lmssbx-10">Structure</span></span> section of the <span id="textcolor24"><span
+class="ec-lmssbx-10">ActorClass</span></span>.
</li>
- <li class="itemize">careful inspection of the console output reveals that objects are created and destroyed as expected</li></ul>
+ <li class="itemize"><span
+class="ec-lmsso-10">port2 </span>and <span
+class="ec-lmsso-10">port3 </span>are <span
+class="ec-lmsso-10">internal end ports </span>and can only be connected to the ports of contained <span id="textcolor25"><span
+class="ec-lmssbx-10">ActorRef</span></span>erences.
+ Internal end ports connect the behavior of an <span id="textcolor26"><span
+class="ec-lmssbx-10">ActorClass</span></span> with its contained <span id="textcolor27"><span
+class="ec-lmssbx-10">ActorRef</span></span>erences.
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">port4 </span>is a relay port and connects external Actors to contained <span id="textcolor28"><span
+class="ec-lmssbx-10">ActorRef</span></span>erences. This port can not be accessed
+ by the behavior of the <span id="textcolor29"><span
+class="ec-lmssbx-10">ActorClass</span></span>.
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">port5 </span>through <span
+class="ec-lmsso-10">port9 </span>are ports of contained actor references. <span
+class="ec-lmsso-10">port8 </span>and <span
+class="ec-lmsso-10">port9 </span>can communicate without
+ interference with the containing actor class.
+ </li>
+ <li class="itemize"><span id="textcolor30"><span
+class="ec-lmssbx-10">Binding</span></span>s can connect ports of the actor class and its contained actor references.</li></ul>
+<a
+ id="Q1-19-157"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x19-1300004"></a>Attributes</h5>
+<!--l. 120--><p class="noindent" ><span id="textcolor31"><span
+class="ec-lmssbx-10">Attribute</span></span>s are part of the <span id="textcolor32"><span
+class="ec-lmssbx-10">Structure</span></span> of an actor class. They can be of a <span id="textcolor33"><span
+class="ec-lmssbx-10">PrimitiveType</span></span> or a <span id="textcolor34"><span
+class="ec-lmssbx-10">DataClass</span></span>.
+</p><!--l. 123--><p class="noindent" >Example:
+</p>
+<!--l. 126-->
+<div class="lstlisting" id="listing-33"><span class="label"><a
+ id="x19-130001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass3</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-130002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-130003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-130004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-130005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-130006r6"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<a
+ id="Q1-19-159"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x19-1310004"></a>Operations</h5>
+<!--l. 137--><p class="noindent" ><span id="textcolor35"><span
+class="ec-lmssbx-10">Operation</span></span>s are part of the <span id="textcolor36"><span
+class="ec-lmssbx-10">Behavior</span></span> of an actor class. Arguments and return values can be of a <span id="textcolor37"><span
+class="ec-lmssbx-10">PrimitiveType</span></span> or a
+<span id="textcolor38"><span
+class="ec-lmssbx-10">DataClass</span></span>. Data classes can be passed by value (implicit) or by reference (<span id="textcolor39"><span
+class="ec-lmssbx-10">ref</span></span>).
+</p><!--l. 140--><p class="noindent" >Example:
+</p>
+<!--l. 144-->
+<div class="lstlisting" id="listing-34"><span class="label"><a
+ id="x19-131001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass4</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">float64</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint16</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131014r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131015r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">except</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131016r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation4</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131017r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131018r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131019r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x19-131020r20"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
-<!--l. 204--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse13.html" >next</a>] [<a
-href="etrice-docse11.html" >prev</a>] [<a
-href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="etrice-docse12.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse12.html" >up</a>] </p></div>
-<!--l. 204--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse12.html" >up</a>] </p></div>
+<!--l. 167--><p class="noindent" ><a
id="tailetrice-docse12.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
index f704dfa03..2e98daa78 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
@@ -4,65 +4,135 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 4</title>
+<head><title>Protocols</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 204--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse14.html" >next</a>] [<a
href="etrice-docse12.html" >prev</a>] [<a
href="etrice-docse12.html#tailetrice-docse12.html" >prev-tail</a>] [<a
href="#tailetrice-docse13.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse13.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.4 </span> <a
- id="x19-810004"></a>Dynamic Actors 4</h3>
-<!--l. 206--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors4</span>.
+href="etrice-docch5.html#etrice-docse13.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.2 </span> <a
+ id="x20-1320002"></a>Protocols</h3>
<a
- id="x19-81001r104"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.4.1 </span> <a
- id="x19-820001"></a>Purpose</h4>
-<!--l. 210--><p class="noindent" >The example demonstrates the usage of an optional actor. But here not the actor containing the optional reference is
-communicating with the optional actor but one level above.
+ id="x20-132001r153"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.2.1 </span> <a
+ id="x20-1330001"></a>Description</h4>
+<!--l. 171--><p class="noindent" >A <span id="textcolor40"><span
+class="ec-lmssbx-10">ProtocolClass</span></span> defines a set of incoming and outgoing <span id="textcolor41"><span
+class="ec-lmssbx-10">Message</span></span>s that can be exchanged between two ports. The exact
+semantics of a message is defined by the execution model.
<a
- id="x19-82001r106"></a>
+ id="x20-133001r162"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.4.2 </span> <a
- id="x19-830002"></a>Details</h4>
-<!--l. 215--><p class="noindent" >The <span
-class="ec-lmtt-10">Controller </span>which has a reference to the <span
-class="ec-lmtt-10">Container </span>is asking the latter for the creation of the dynamic actor. When it
-receives <span
-class="ec-lmtt-10">ok() </span>it is requesting <span
-class="ec-lmtt-10">sayHello() </span>from the newly created actor.
-</p><!--l. 219--><p class="noindent" >After the <span
-class="ec-lmtt-10">Controller </span>receives <span
-class="ec-lmtt-10">hello() </span>it tells the <span
-class="ec-lmtt-10">Container </span>to create another actor which fails because the old one is still
-in place.
+<h4 class="subsectionHead"><span class="titlemark">5.2.2 </span> <a
+ id="x20-1340002"></a>Motivation</h4>
+ <ul class="itemize1">
+ <li class="itemize">Protocol classes provide a reusable interface specification for ports
+ </li>
+ <li class="itemize">Protocol classes can optionally specify valid message exchange sequences</li></ul>
<a
- id="x19-83001r107"></a>
+ id="x20-134001r163"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.2.3 </span> <a
+ id="x20-1350003"></a>Notation</h4>
+<!--l. 183--><p class="noindent" >Protocol classes have only textual notation. The example defines a protocol class with 2 incoming and two outgoing
+messages. Messages can have data attached. The data can be of a primitive type (e.g. int32, float64, ...) or a data
+class.
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.4.3 </span> <a
- id="x19-840003"></a>Noteworthy</h4>
- <ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<!--l. 188-->
+<div class="lstlisting" id="listing-35"><span class="label"><a
+ id="x20-135001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">m1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">m2</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">m3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">m4</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x20-135010r10"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
-<!--l. 228--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse14.html" >next</a>] [<a
href="etrice-docse12.html" >prev</a>] [<a
href="etrice-docse12.html#tailetrice-docse12.html" >prev-tail</a>] [<a
href="etrice-docse13.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse13.html" >up</a>] </p></div>
-<!--l. 228--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse13.html" >up</a>] </p></div>
+<!--l. 201--><p class="noindent" ><a
id="tailetrice-docse13.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
index b0ba54e79..942dfa0d2 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
@@ -4,55 +4,1008 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 5</title>
+<head><title>Ports</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 228--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse15.html" >next</a>] [<a
href="etrice-docse13.html" >prev</a>] [<a
href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
href="#tailetrice-docse14.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse14.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.5 </span> <a
- id="x20-850005"></a>Dynamic Actors 5</h3>
-<!--l. 230--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors5</span>.
+href="etrice-docch5.html#etrice-docse14.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.3 </span> <a
+ id="x21-1360003"></a>Ports</h3>
<a
- id="x20-85001r108"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.5.1 </span> <a
- id="x20-860001"></a>Purpose</h4>
-<!--l. 234--><p class="noindent" >The example shows that the optional actor can not only have relay ports but also external end ports.
+ id="x21-136001r164"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.3.1 </span> <a
+ id="x21-1370001"></a>Description</h4>
+<!--l. 205--><p class="noindent" ><span id="textcolor42"><span
+class="ec-lmssbx-10">Port</span></span>s are the only interfaces of actors. A port has always a protocol assigned. Service Access Points (SAP) and Service
+Provision Points (SPP) are specialized ports that are used to define layering.
<a
- id="x20-86001r110"></a>
+ id="x21-137001r166"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.5.2 </span> <a
- id="x20-870002"></a>Details</h4>
-<!--l. 238--><p class="noindent" >This simple example just shows that the optional actor may directly handle inbound messages by using an external end port
-rather than the relay port of the previous examples.
+<h4 class="subsectionHead"><span class="titlemark">5.3.2 </span> <a
+ id="x21-1380002"></a>Motivation</h4>
+ <ul class="itemize1">
+ <li class="itemize">Ports decouple interface definition (protocols) from interface usage
+ </li>
+ <li class="itemize">Ports decouple the logical interface from the transport</li></ul>
<a
- id="x20-87001r111"></a>
+ id="x21-138001r167"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.3.3 </span> <a
+ id="x21-1390003"></a>Notation</h4>
+<a
+ id="Q1-21-169"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x21-1400003"></a>Class Ports</h5>
+<!--l. 220--><p class="noindent" >These symbols can only appear on the border of an actor class symbol.
+</p><!--l. 222--><p class="noindent" >Ports that define an external interface of the actor class, are defined in the <span id="textcolor43"><span
+class="ec-lmssbx-10">Interface</span></span>. Ports that define an internal interface
+are defined in the <span id="textcolor44"><span
+class="ec-lmssbx-10">Structure</span></span> (e.g. internal ports).
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.5.3 </span> <a
- id="x20-880003"></a>Noteworthy</h4>
<ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+ <li class="itemize"><span
+class="ec-lmsso-10">External end ports </span>are defined in the Interface and the Structure
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Internal end ports </span>are only defined in the Structure
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Relay ports </span>are only defined in the Interface
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">End ports </span>are always connected to the internal behavior of the ActorClass
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Replicated ports </span>can be defined with a fixed replication factor, e.g.<br
+class="newline" /><span id="textcolor45"><span
+class="ec-lmtk-10">Port</span></span> <span
+class="ec-lmtt-10">port18 [5]: ProtocolClass1</span><br
+class="newline" />or a variable replication factor, e.g.<br
+class="newline" /><span id="textcolor46"><span
+class="ec-lmtk-10">Port</span></span> <span
+class="ec-lmtt-10">port18[*]: ProtocolClass1</span></li></ul>
+<!--l. 236--><p class="noindent" >The table <a
+href="#x21-140001r3">5.3<!--tex4ht:ref: tab:class_port_notation --></a> shows all kinds of class ports with textual and graphical notation.
+<a
+ id="x21-140001r3"></a>
+</p>
+<!--l. 240--><div class="longtable"> <table id="TBL-5" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-5-1g"><col
+id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col
+id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col
+id="TBL-5-3" /></colgroup>
+
+
+<tr
+ style="vertical-align:baseline;" id="TBL-5-1-"><td colspan="3" style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-1-1"
+class="td11"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"> <div class="caption"
+><span class="id">Table&#x00A0;5.3: </span><span
+class="content">Class Port Notation</span></div><!--tex4ht:label?: x21-140001r3 --> </div> <a
+ id="x21-140002"></a>
+</td></tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-1"
+class="td11">
+ <!--l. 243--><p class="noindent" ><span
+class="ec-lmssbx-10">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-3"
+class="td11">
+ <!--l. 243--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2"
+class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-3"
+class="td11">
+</td></tr>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-1"
+class="td11">
+ <!--l. 246--><p class="noindent" >Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2"
+class="td11"> <img
+src="images/040-ClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-6" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-6-1g"><col
+id="TBL-6-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
+class="td11"><span
+class="ec-lmsso-10">External Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
+class="td11"><!--l. 250--> <!--l. 250--><p class="noindent" ><a
+ id="x21-140003r1"></a><a
+ id="x21-140004"></a><div class="lstlisting" id="listing-36"><span class="label"><a
+ id="x21-140005r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140006r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140007r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140008r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140009r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140010r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140011r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140012r8"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
+class="td11"><span
+class="ec-lmsso-10">Internal Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
+class="td11"><!--l. 263--> <!--l. 263--><p class="noindent" ><a
+ id="x21-140013r2"></a><a
+ id="x21-140014"></a><div class="lstlisting" id="listing-37"><span class="label"><a
+ id="x21-140015r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140016r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140017r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140018r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140019r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port20</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140020r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140021r7"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-1"
+class="td11">
+ <!--l. 276--><p class="noindent" >Conjugated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2"
+class="td11"> <img
+src="images/040-ConjugatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-7" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-7-1g"><col
+id="TBL-7-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
+class="td11"><span
+class="ec-lmsso-10">External Conjugated Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
+class="td11"><!--l. 280--> <!--l. 280--><p class="noindent" ><a
+ id="x21-140022r3"></a><a
+ id="x21-140023"></a><div class="lstlisting" id="listing-38"><span class="label"><a
+ id="x21-140024r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140025r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140026r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140027r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140028r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140029r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140030r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140031r8"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
+class="td11"><span
+class="ec-lmsso-10">Internal Conjugated Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
+class="td11"><!--l. 293--> <!--l. 293--><p class="noindent" ><a
+ id="x21-140032r4"></a><a
+ id="x21-140033"></a><div class="lstlisting" id="listing-39"><span class="label"><a
+ id="x21-140034r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140035r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140036r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140037r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140038r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port21</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140039r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140040r7"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-1"
+class="td11">
+ <!--l. 307--><p class="noindent" >Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2"
+class="td11"> <img
+src="images/040-ClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-3"
+class="td11">
+ <!--l. 309-->
+ <a
+ id="x21-140041r5"></a>
+ <a
+ id="x21-140042"></a>
+ <div class="lstlisting" id="listing-40"><span class="label"><a
+ id="x21-140043r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140044r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140045r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port10</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140046r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140047r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140048r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140049r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 320--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-1"
+class="td11">
+ <!--l. 321--><p class="noindent" >Conjugated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2"
+class="td11"> <img
+src="images/040-ConjugatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-3"
+class="td11">
+ <!--l. 323-->
+ <a
+ id="x21-140050r6"></a>
+ <a
+ id="x21-140051"></a>
+ <div class="lstlisting" id="listing-41"><span class="label"><a
+ id="x21-140052r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140053r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140054r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port10</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140055r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140056r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140057r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140058r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 334--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-1"
+class="td11">
+ <!--l. 335--><p class="noindent" >Replicated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2"
+class="td11"> <img
+src="images/040-ReplicatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-8" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-8-1g"><col
+id="TBL-8-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1"
+class="td11"><!--l. 338--><p class="noindent" ><span
+class="ec-lmsso-10">External Replicated Class End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1"
+class="td11"><!--l. 339-->
+<a
+ id="x21-140059r7"></a>
+<a
+ id="x21-140060"></a>
+<div class="lstlisting" id="listing-42"><span class="label"><a
+ id="x21-140061r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140062r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140063r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140064r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140065r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140066r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140067r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140068r8"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 351--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1"
+class="td11"><!--l. 351--><p class="noindent" ><span
+class="ec-lmsso-10">Internal Replicated Class End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1"
+class="td11"><!--l. 352-->
+<a
+ id="x21-140069r8"></a>
+<a
+ id="x21-140070"></a>
+<div class="lstlisting" id="listing-43"><span class="label"><a
+ id="x21-140071r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140072r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140073r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140074r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140075r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140076r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140077r7"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 363--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-1"
+class="td11">
+ <!--l. 366--><p class="noindent" >Conjugated
+ Replicated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-9" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-9-1g"><col
+id="TBL-9-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1"
+class="td11"><!--l. 369--><p class="noindent" ><span
+class="ec-lmsso-10">External Conjugated Replicated Class</span>
+<span
+class="ec-lmsso-10">End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1"
+class="td11"><!--l. 370-->
+<a
+ id="x21-140078r9"></a>
+<a
+ id="x21-140079"></a>
+<div class="lstlisting" id="listing-44"><span class="label"><a
+ id="x21-140080r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140081r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140082r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port17</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140083r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140084r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140085r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port17</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140086r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140087r8"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 382--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1"
+class="td11"><!--l. 382--><p class="noindent" ><span
+class="ec-lmsso-10">Internal Conjugated Replicated Class</span>
+<span
+class="ec-lmsso-10">End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1"
+class="td11"><!--l. 383-->
+<a
+ id="x21-140088r10"></a>
+<a
+ id="x21-140089"></a>
+<div class="lstlisting" id="listing-45"><span class="label"><a
+ id="x21-140090r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140091r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140092r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140093r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140094r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port23</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140095r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140096r7"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 394--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-1"
+class="td11">
+ <!--l. 397--><p class="noindent" >Replicated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-10-2"
+class="td11"> <img
+src="images/040-ReplicatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-3"
+class="td11">
+ <!--l. 399-->
+ <a
+ id="x21-140097r11"></a>
+ <a
+ id="x21-140098"></a>
+ <div class="lstlisting" id="listing-46"><span class="label"><a
+ id="x21-140099r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140100r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140101r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port18</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140102r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140103r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140104r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140105r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 409--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-1"
+class="td11">
+ <!--l. 410--><p class="noindent" >Conjugated
+ Replicated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-11-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-3"
+class="td11">
+ <!--l. 412-->
+ <a
+ id="x21-140106r12"></a>
+ <a
+ id="x21-140107"></a>
+ <div class="lstlisting" id="listing-47"><span class="label"><a
+ id="x21-140108r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140109r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140110r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port19</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140111r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140112r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140113r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-140114r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 423--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-12-1"
+class="td11"> </td>
+
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-13-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-14-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-15-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-15-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-16-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-16-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr>
+</table></div>
+<a
+ id="Q1-21-184"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x21-1410003"></a>Reference Ports</h5>
+<!--l. 429--><p class="noindent" >These symbols can only appear on the border of an actor class. Since the type of port is defined in the actor class, no textual
+notation for the Reference Ports exists.
+</p><!--l. 432--><p class="noindent" >The table <a
+href="#x21-141001r4">5.4<!--tex4ht:ref: tab:reference_port_notation --></a> shows all kinds of reference ports with textual and graphical notation.
+</p>
+<div class="table">
+
+
+<!--l. 435--><p class="noindent" ><a
+ id="x21-141001r4"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.4: </span><span
+class="content">Reference Port Notation</span></div><!--tex4ht:label?: x21-141001r4 -->
+<div class="tabular"> <table id="TBL-10" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-10-1g"><col
+id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col
+id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col
+id="TBL-10-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1"
+class="td11"> <span
+class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3"
+class="td11"> <span
+class="ec-lmssbx-10">Textual Notation </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1"
+class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2"
+class="td11"> <img
+src="images/040-ReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1"
+class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2"
+class="td11"> <img
+src="images/040-ConjugatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1"
+class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2"
+class="td11"> <img
+src="images/040-ReplicatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1"
+class="td11"> Conjugated Replicated </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1"
+class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
-<!--l. 247--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse15.html" >next</a>] [<a
href="etrice-docse13.html" >prev</a>] [<a
href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
href="etrice-docse14.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse14.html" >up</a>] </p></div>
-<!--l. 247--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse14.html" >up</a>] </p></div>
+<!--l. 450--><p class="noindent" ><a
id="tailetrice-docse14.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
index 77c96b35c..ca9daa822 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
@@ -4,67 +4,409 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 6</title>
+<head><title>DataClass</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 247--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse16.html" >next</a>] [<a
href="etrice-docse14.html" >prev</a>] [<a
href="etrice-docse14.html#tailetrice-docse14.html" >prev-tail</a>] [<a
href="#tailetrice-docse15.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse15.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.6 </span> <a
- id="x21-890006"></a>Dynamic Actors 6</h3>
-<!--l. 249--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors6</span>.
+href="etrice-docch5.html#etrice-docse15.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.4 </span> <a
+ id="x22-1420004"></a>DataClass</h3>
<a
- id="x21-89001r112"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.6.1 </span> <a
- id="x21-900001"></a>Purpose</h4>
-<!--l. 253--><p class="noindent" >The example demonstrates the use of nested dynamic actors.
+ id="x22-142001r168"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.4.1 </span> <a
+ id="x22-1430001"></a>Description</h4>
+<!--l. 454--><p class="noindent" >The <span id="textcolor47"><span
+class="ec-lmssbx-10">DataClass</span></span> enables the modeling of hierarchical complex data types and operations on them. The data class is the
+equivalent to a class in languages like Java or C++, but has less features. The content of a data class can always be sent via
+message between actors (defined as message data in a <span id="textcolor48"><span
+class="ec-lmssbx-10">ProtocolClass</span></span>).
<a
- id="x21-90001r114"></a>
+ id="x22-143001r188"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.6.2 </span> <a
- id="x21-910002"></a>Details</h4>
-<!--l. 257--><p class="noindent" >In this example the dynamically created actor <span
-class="ec-lmtt-10">Optional2 </span>has again an optional reference two levels down in its hierarchy. On
-creation it immediately creates a nested dynamic actor of class <span
-class="ec-lmtt-10">Optional1 </span>which is sending <span
-class="ec-lmtt-10">hello() </span>back to the outer
-<span
-class="ec-lmtt-10">Container</span>.
-<a
- id="x21-91001r115"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.4.2 </span> <a
+ id="x22-1440002"></a>Notation</h4>
+<!--l. 460--><p class="noindent" >Example: DataClass using PrimitiveTypes
+</p>
+<!--l. 462-->
+<div class="lstlisting" id="listing-48"><span class="label"><a
+ id="x22-144001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">float32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">another</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144014r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">float64</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144015r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144016r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144017r17"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 483--><p class="noindent" >Example: DataClass using other DataClasses:
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.6.3 </span> <a
- id="x21-920003"></a>Noteworthy</h4>
- <ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure
- </li>
- <li class="itemize">when a dynamic actor is created its structure is there immediately and all ports are connected. But the initial
- transition is executed asynchronously. So after the outer dynamic actor is created the port of the <span
-class="ec-lmtt-10">Container</span>
- is not yet connected because the initial transition which is responsible for the creation of the inner dynamic
- actor wasn&#8217;t executed yet. So a message sent from this port directly after creation of the outer dynamic actor
- would get lost.</li></ul>
+<!--l. 485-->
+<div class="lstlisting" id="listing-49"><span class="label"><a
+ id="x22-144018r1"></a></span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144019r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144020r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144021r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144022r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144023r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144024r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144025r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144026r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">except</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144027r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144028r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144029r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x22-144030r13"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
-<!--l. 271--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse16.html" >next</a>] [<a
href="etrice-docse14.html" >prev</a>] [<a
href="etrice-docse14.html#tailetrice-docse14.html" >prev-tail</a>] [<a
href="etrice-docse15.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse15.html" >up</a>] </p></div>
-<!--l. 271--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse15.html" >up</a>] </p></div>
+<!--l. 502--><p class="noindent" ><a
id="tailetrice-docse15.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
index 90f662bdc..818e64dd1 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
@@ -4,55 +4,496 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 7</title>
+<head><title>Layering</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 271--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse17.html" >next</a>] [<a
href="etrice-docse15.html" >prev</a>] [<a
href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
href="#tailetrice-docse16.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse16.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.7 </span> <a
- id="x22-930007"></a>Dynamic Actors 7</h3>
-<!--l. 273--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors7</span>.
+href="etrice-docch5.html#etrice-docse16.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.5 </span> <a
+ id="x23-1450005"></a>Layering</h3>
<a
- id="x22-93001r116"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.7.1 </span> <a
- id="x22-940001"></a>Purpose</h4>
-<!--l. 277--><p class="noindent" >The example demonstrates the use of communication between two optional actors.
-<a
- id="x22-94001r118"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.7.2 </span> <a
- id="x22-950002"></a>Details</h4>
-<!--l. 281--><p class="noindent" >In this example two sub trees of dynamic actors are created. The container is sending a message to one of them which is
-forwarding it to the other one which in turn is replying back to the container.
+ id="x23-145001r189"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.5.1 </span> <a
+ id="x23-1460001"></a>Description</h4>
+<!--l. 506--><p class="noindent" >In addition to the actor containment hierarchies, layering provides another method to hierarchically structure a
+software system. Layering and actor hierarchies with port to port connections can be mixed on every level of
+granularity.
+ </p><ol class="enumerate1" >
+ <li
+ class="enumerate" id="x23-146002x1">an actor class can define a Service Provision Point (<span id="textcolor49"><span
+class="ec-lmssbx-10">SPP</span></span>) to publish a specific service, defined by a protocol
+ class
+ </li>
+ <li
+ class="enumerate" id="x23-146004x2">an actor class can define a Service Access Point (<span id="textcolor50"><span
+class="ec-lmssbx-10">SAP</span></span>) if it needs a service, defined by a protocol class
+ </li>
+ <li
+ class="enumerate" id="x23-146006x3">for a given actor hierarchy, a <span id="textcolor51"><span
+class="ec-lmssbx-10">LayerConnection</span></span> defines which SAP will be satisfied by (connected to) which
+ SPP</li></ol>
<a
- id="x22-95001r119"></a>
+ id="x23-146007r191"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.5.2 </span> <a
+ id="x23-1470002"></a>Notation</h4>
+<!--l. 521--><p class="noindent" >For the graphical and textual notation refer to table <a
+href="#x23-147001r5">5.5<!--tex4ht:ref: tab:layering_notation --></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.7.3 </span> <a
- id="x22-960003"></a>Noteworthy</h4>
- <ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<div class="table">
+
+
+<!--l. 524--><p class="noindent" ><a
+ id="x23-147001r5"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.5: </span><span
+class="content">Layering Notation</span></div><!--tex4ht:label?: x23-147001r5 -->
+<div class="tabular"> <table id="TBL-11" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-11-1g"><col
+id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col
+id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col
+id="TBL-11-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1"
+class="td11"> <!--l. 528--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-3"
+class="td11"> <!--l. 528--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 530--><p class="noindent" >
+ The layer
+ connections in this
+ model define which
+ services are provided
+ by the <span
+class="ec-lmsso-10">ServiceLayer</span>
+ (<span
+class="ec-lmsso-10">digitalIO </span>and
+ <span
+class="ec-lmsso-10">timer</span>)</p></div>
+ <!--l. 533--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2"
+class="td11"> <img
+src="images/040-LayeringModel.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-3"
+class="td11"> <!--l. 537-->
+ <div class="lstlisting" id="listing-50"><span class="label"><a
+ id="x23-147002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Mode1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147009r8"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 548--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 549--><p class="noindent" >
+ The
+ implementation of
+ the services (SPPs)
+ can be delegated to
+ sub actors. In this
+ case the actor
+ <span
+class="ec-lmsso-10">ServiceLayer </span>relays
+ (delegates) the
+ implementation
+ services <span
+class="ec-lmsso-10">digitalIO</span>
+ and <span
+class="ec-lmsso-10">timer </span>to sub
+ actors</p></div>
+ <!--l. 553--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2"
+class="td11"> <img
+src="images/040-LayeringServiceLayer.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-3"
+class="td11"> <!--l. 556-->
+ <div class="lstlisting" id="listing-51"><span class="label"><a
+ id="x23-147010r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147011r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147012r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SPP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147013r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SPP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147014r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147015r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147016r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Timer</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerService</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147017r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DifitalIOService</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147018r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Timer</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147019r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147020r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147021r12"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 571--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 572--><p class="noindent" >
+ Every Actor inside
+ the
+ <span
+class="ec-lmsso-10">ApplicationLayer</span>
+ that contains an
+ SAP with the same
+ protocol as <span
+class="ec-lmsso-10">timer </span>or
+ <span
+class="ec-lmsso-10">digitalIO </span>will be
+ connected to the
+ specified SPP</p></div>
+ <!--l. 575--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2"
+class="td11"> <img
+src="images/040-LayeringApplicationLayer.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-3"
+class="td11"> <!--l. 578-->
+ <div class="lstlisting" id="listing-52"><span class="label"><a
+ id="x23-147022r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147023r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147024r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">A</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147025r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">B</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147026r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function3</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147027r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function4</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">D</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147028r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147029r8"></a></span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147030r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147031r10"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">A</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147032r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147033r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timerSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147034r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147035r14"></a></span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147036r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147037r16"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">B</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147038r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147039r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timerSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147040r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147041r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x23-147042r21"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 602--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
-<!--l. 290--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse17.html" >next</a>] [<a
href="etrice-docse15.html" >prev</a>] [<a
href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
href="etrice-docse16.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse16.html" >up</a>] </p></div>
-<!--l. 290--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse16.html" >up</a>] </p></div>
+<!--l. 606--><p class="noindent" ><a
id="tailetrice-docse16.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
index 9ff86dfc4..44d220994 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
@@ -4,77 +4,463 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 8</title>
+<head><title>Finite State Machines</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 290--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse18.html" >next</a>] [<a
+<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch6.html" >next</a>] [<a
href="etrice-docse16.html" >prev</a>] [<a
href="etrice-docse16.html#tailetrice-docse16.html" >prev-tail</a>] [<a
href="#tailetrice-docse17.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse17.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.8 </span> <a
- id="x23-970008"></a>Dynamic Actors 8</h3>
-<!--l. 292--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors8</span>.
+href="etrice-docch5.html#etrice-docse17.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.6 </span> <a
+ id="x24-1480006"></a>Finite State Machines</h3>
<a
- id="x23-97001r120"></a>
+ id="x24-148001r192"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.6.1 </span> <a
+ id="x24-1490001"></a>Description</h4>
+<!--l. 610--><p class="noindent" >Definition from <a
+href="http://en.wikipedia.org/wiki/Finite-state_machine" >Wikipedia</a>:
+ </p><div class="quote">
+ <!--l. 613--><p class="noindent" >A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine,
+ is a mathematical model used to design computer programs and digital logic circuits. It is conceived as
+ an abstract machine that can be in one of a finite number of states. The machine is in only one state at
+ a time; the state it is in at any given time is called the current state. It can change from one state to
+ another when initiated by a triggering event or condition, this is called a transition. A particular FSM is
+ defined by a list of the possible states it can transition to from each state, and the triggering condition
+ for each transition.
+ </p><!--l. 621--><p class="noindent" >In ROOM each actor class can implement its behavior using a state machine. Events occurring at the
+ end ports of an actor will be forwarded to and processed by the state machine. Events possibly trigger
+ state transitions.</p></div>
+<a
+ id="x24-149001r195"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.6.2 </span> <a
+ id="x24-1500002"></a>Motivation</h4>
+<!--l. 628--><p class="noindent" >For event driven systems a finite state machine is ideal for processing the stream of events. Typically during processing new
+events are produced which are sent to peer actors.
+</p><!--l. 631--><p class="noindent" >We distinguish flat and hierarchical state machines.
+<a
+ id="x24-150001r196"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.8.1 </span> <a
- id="x23-980001"></a>Purpose</h4>
-<!--l. 296--><p class="noindent" >The example demonstrates the use of the persistence interface for dynamic actors.
+<h4 class="subsectionHead"><span class="titlemark">5.6.3 </span> <a
+ id="x24-1510003"></a>Notation</h4>
+<!--l. 635--><p class="noindent" >We distinguish flat finite state machines (with just one level of hierarchy) and hierarchical ones.
<a
- id="x23-98001r122"></a>
+ id="Q1-24-198"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.8.2 </span> <a
- id="x23-990002"></a>Details</h4>
-<!--l. 300--><p class="noindent" >Dynamic actors can be persisted and restored. To this end the user has to pass an <span
-class="ec-lmtt-10">java.io.ObjectOutput </span>to
-the creation method (<span
-class="ec-lmtt-10">createOptionalActor()</span>) and an <span
-class="ec-lmtt-10">java.io.ObjectInput </span>to the deletion method
-(<span
-class="ec-lmtt-10">destroyOptionalActor()</span>).
-</p><!--l. 303--><p class="noindent" >The code generation has to be invoked with the <span
-class="ec-lmtt-10">-persistable </span>(e.g. by setting the &#8217;generate persistence interface&#8217; flag in the
-Java Generator tab of the launch configuration). This lets the generator implement the <span
-class="ec-lmtt-10">IPersistable </span>interface for actor
-classes.
-</p><!--l. 306--><p class="noindent" >The example adds a manually coded very simple <span
-class="ec-lmtt-10">FilePersistor </span>with four static methods for creation and deletion of scalar
-and replicated dynamic actors.
-</p><!--l. 309--><p class="noindent" >The <span
-class="ec-lmtt-10">Container </span>class first creates an optional actor of type <span
-class="ec-lmtt-10">Optional1 </span>in the scalar reference <span
-class="ec-lmtt-10">opt</span>. Then messages are sent
-to this actor instance which lead to some state changes. Finally it is saved and destroyed. Now another actor class is
-instantiated in the same actor reference and also destroyed. Then the first instance is loaded from file. It directly starts in the
-state it had when it was saved. The second part of the example loads copies of the two instances created in the beginning
-into the <span
-class="ec-lmtt-10">optarr </span>reference.
+<h5 class="likesubsubsectionHead"><a
+ id="x24-1520003"></a>Flat Finite State Machine</h5>
+<!--l. 639--><p class="noindent" >The simpler flat finite state machines are composed of the elements shown in table <a
+href="#x24-152001r6">5.6<!--tex4ht:ref: tab:flat_fsm_notation --></a>.
+</p>
+<div class="table">
+
+
+<!--l. 642--><p class="noindent" ><a
+ id="x24-152001r6"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.6: </span><span
+class="content">Flat finite state machine notation</span></div><!--tex4ht:label?: x24-152001r6 -->
+<div class="tabular"> <table id="TBL-12" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-12-1g"><col
+id="TBL-12-1" /></colgroup><colgroup id="TBL-12-2g"><col
+id="TBL-12-2" /></colgroup><colgroup id="TBL-12-3g"><col
+id="TBL-12-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-1"
+class="td11"> <!--l. 646--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-3"
+class="td11"> <!--l. 646--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-1"
+class="td11"> <!--l. 648--><p class="noindent" >State </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-2"
+class="td11"> <img
+src="images/040-State.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-3"
+class="td11"> <!--l. 649-->
+ <div class="lstlisting" id="listing-53"><span class="label"><a
+ id="x24-152002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SomeState</span>
+
+</div>
+<!--l. 654--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-1"
+class="td11"> <!--l. 655--><p class="noindent" >InitialPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-2"
+class="td11"> <img
+src="images/040-InitialPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-3"
+class="td11"> <!--l. 655--><p class="noindent" ><span
+class="ec-lmsso-10">implicit</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-1"
+class="td11"> <!--l. 657--><p class="noindent" >TransitionPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-2"
+class="td11"> <img
+src="images/040-TransitionPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-3"
+class="td11"> <!--l. 658-->
+ <div class="lstlisting" id="listing-54"><span class="label"><a
+ id="x24-152003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">TransitionPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tp</span>
+
+</div>
+<!--l. 663--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-1"
+class="td11"> <!--l. 664--><p class="noindent" >ChoicePoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-2"
+class="td11"> <img
+src="images/040-ChoicePoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-3"
+class="td11"> <!--l. 665-->
+ <div class="lstlisting" id="listing-55"><span class="label"><a
+ id="x24-152004r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ChoicePoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">cp</span>
+
+</div>
+<!--l. 670--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-1"
+class="td11"> <!--l. 671--><p class="noindent" >Initial Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-2"
+class="td11"> <img
+src="images/040-InitialTransition.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-3"
+class="td11"> <!--l. 672-->
+ <div class="lstlisting" id="listing-56"><span class="label"><a
+ id="x24-152005r1"></a></span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 677--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-1"
+class="td11"> <!--l. 678--><p class="noindent" >Triggered Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-2"
+class="td11"> <img
+src="images/040-TriggeredTransition.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-3"
+class="td11"> <!--l. 679-->
+ <div class="lstlisting" id="listing-57"><span class="label"><a
+ id="x24-152006r1"></a></span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr0</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DoingThis</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-152007r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-152008r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">doThis</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">fct</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-152009r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-152010r5"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 688--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-8-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
<a
- id="x23-99001r123"></a>
+ id="Q1-24-201"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x24-1530003"></a>Hierarchical Finite State Machine</h5>
+<!--l. 695--><p class="noindent" >The hierarchical finite state machine adds the notion of a sub state machine nested in a state. A few modeling elements listed
+in table <a
+href="#x24-153001r7">5.7<!--tex4ht:ref: tab:hier_fsm_notation --></a> are added to the set listed above.
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.8.3 </span> <a
- id="x23-1000003"></a>Noteworthy</h4>
- <ul class="itemize1">
- <li class="itemize">the generated MSC <span
-class="ec-lmtt-10">main_Async.seq </span>is a good illustration of the dynamic changes in the system structure</li></ul>
+<div class="table">
+
+
+<!--l. 699--><p class="noindent" ><a
+ id="x24-153001r7"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;5.7: </span><span
+class="content">Additional notation elements of hierarchical finite state machines</span></div><!--tex4ht:label?: x24-153001r7 -->
+<div class="tabular"> <table id="TBL-13" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-13-1g"><col
+id="TBL-13-1" /></colgroup><colgroup id="TBL-13-2g"><col
+id="TBL-13-2" /></colgroup><colgroup id="TBL-13-3g"><col
+id="TBL-13-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-1"
+class="td11"> <!--l. 703--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-3"
+class="td11"> <!--l. 703--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-1"
+class="td11"> <!--l. 705--><p class="noindent" >State with sub state
+ machine </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-2"
+class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-14-1g"><col
+id="TBL-14-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-1-1"
+class="td00">Parent State</td></tr><tr
+ style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-2-1"
+class="td00"> <img
+src="images/040-StateWithSubFSM.jpg" alt="PIC"
+ /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-3"
+class="td11"> <div class="tabular"> <table id="TBL-15" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-15-1g"><col
+id="TBL-15-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1"
+class="td11">Sub state machine </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-1"
+class="td11"><!--l. 710--> <!--l. 710--><p class="noindent" ><div class="lstlisting" id="listing-58"><span class="label"><a
+ id="x24-153002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Running</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-153003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">subgraph</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-153004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Process</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-153005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Process</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-153006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x24-153007r6"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr></table></div>
+ <!--l. 722--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-1"
+class="td11"> <!--l. 723--><p class="noindent" >Entry Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-2"
+class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-16-1g"><col
+id="TBL-16-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-1-1"
+class="td00">In sub state machine</td></tr><tr
+ style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-2-1"
+class="td00"> <img
+src="images/040-EntryPoint.jpg" alt="PIC"
+ /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-3"
+class="td11"> <!--l. 726-->
+ <div class="lstlisting" id="listing-59"><span class="label"><a
+ id="x24-153008r1"></a></span><span
+class="ec-lmssbx-10x-x-90">EntryPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reInit</span>
+
+</div>
+<!--l. 730--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-1"
+class="td11"> <!--l. 731--><p class="noindent" >Exit Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-2"
+class="td11"> <img
+src="images/040-ExitPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-3"
+class="td11"> <!--l. 733-->
+ <div class="lstlisting" id="listing-60"><span class="label"><a
+ id="x24-153009r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ExitPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tp0</span>
+
+</div>
+<!--l. 736--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-5-1"
+class="td11"> </td></tr></table>
+</div>
+
+
+</div><hr class="endfloat" />
+</div>
+<a
+ id="x24-153010r197"></a>
+<h4 class="subsectionHead"><span class="titlemark">5.6.4 </span> <a
+ id="x24-1540004"></a>Examples</h4>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x24-154001r1"></a>
+
+
+<!--l. 743--><p class="noindent" ><img
+src="images/040-FlatFSM.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;5.1: </span><span
+class="content">Example of a flat finite state machine</span></div><!--tex4ht:label?: x24-154001r1 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x24-154002r2"></a>
+
+
+<!--l. 748--><p class="noindent" ><img
+src="images/040-HierarchicalFSMTop.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;5.2: </span><span
+class="content">Example of a hierarchical finite state machine &#8211; top level</span></div><!--tex4ht:label?: x24-154002r2 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x24-154003r3"></a>
+
+
+<!--l. 753--><p class="noindent" ><img
+src="images/040-HierarchicalFSMInitializing.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;5.3: </span><span
+class="content">Hierarchical finite state machine &#8211; sub state machine of <span
+class="ec-lmsso-10">Initializing</span></span></div><!--tex4ht:label?: x24-154003r3 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x24-154004r4"></a><a
+ id="x27-16400097"></a>
+
+
+<!--l. 758--><p class="noindent" ><img
+src="images/040-HierarchicalFSMRunning.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;5.4: </span><span
+class="content">Hierarchical finite state machine &#8211; sub state machine of <span
+class="ec-lmsso-10">Running</span></span></div><!--tex4ht:label?: x24-154004r4 -->
+
+
+</div><hr class="endfigure" />
-<!--l. 321--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse18.html" >next</a>] [<a
+<!--l. 106--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch6.html" >next</a>] [<a
href="etrice-docse16.html" >prev</a>] [<a
href="etrice-docse16.html#tailetrice-docse16.html" >prev-tail</a>] [<a
href="etrice-docse17.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse17.html" >up</a>] </p></div>
-<!--l. 321--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse17.html" >up</a>] </p></div>
+<!--l. 106--><p class="noindent" ><a
id="tailetrice-docse17.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html
index 807a97702..b8e1b988f 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html
@@ -4,59 +4,102 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Dynamic Actors 9</title>
+<head><title>Model Navigation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 321--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch5.html" >next</a>] [<a
-href="etrice-docse17.html" >prev</a>] [<a
-href="etrice-docse17.html#tailetrice-docse17.html" >prev-tail</a>] [<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse19.html" >next</a>] [<a
+href="etrice-docch6.html" >prev</a>] [<a
+href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
href="#tailetrice-docse18.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse18.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.9 </span> <a
- id="x24-1010009"></a>Dynamic Actors 9</h3>
-<!--l. 323--><p class="noindent" >This example is contained in <span
-class="ec-lmtt-10">org.eclipse.etrice.examples.dynamicactors9</span>.
+href="etrice-docch6.html#etrice-docse18.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.1 </span> <a
+ id="x26-1560001"></a>Model Navigation</h3>
+<!--l. 3--><p class="noindent" >In eTrice the primary source of the models is text based. However, for convenience the structure and the behavior of structure
+classes can be edited with graphical editors using the standard ROOM notation. Further. the textual models can be
+structured hierarchically using the import statement.
+</p><!--l. 7--><p class="noindent" >So jumping between textual models and switching to and between diagrams and back to the textual representation is a
+frequent task. Therefore in this chapter we want to show the various possibilities to navigate the models.
<a
- id="x24-101001r124"></a>
+ id="x26-156001r204"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.1.1 </span> <a
+ id="x26-1570001"></a>From Model to Behavior to Structure</h4>
+<!--l. 12--><p class="noindent" >There are three global key bindings (cf. the eTrice main menu item):
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.9.1 </span> <a
- id="x24-1020001"></a>Purpose</h4>
-<!--l. 327--><p class="noindent" >The example demonstrates the use of SAPs in dynamic actors.
+ <ul class="itemize1">
+ <li class="itemize">Alt+M &#8211; jump to the textual model
+
+
+ </li>
+ <li class="itemize">Alt+B &#8211; jump to the behavior diagram of the current actor class (determined by the cursor or selection position)
+ </li>
+ <li class="itemize">Alt+S &#8211; jump to the structure of the current structure class (determined by the cursor or selection position)</li></ul>
+<!--l. 20--><p class="noindent" >Jumping from a diagram to the textual model using Alt+M will open (or bring to the front) an editor with the ROOM file
+and will select the structure class of the diagram in the text.
+</p><!--l. 23--><p class="noindent" >The other way round, the position of the cursor or selection in the ROOM file is relevant. If it is enclosed by an actor class
+then for Alt+B a state machine editor is opened. If it is a structure class and Alt+S is pressed then the structure editor is
+opened for this class.
+</p><!--l. 27--><p class="noindent" >As an alternative the context menu of an actor class can be used to open the associated structure or behavior
+diagram.
+</p><!--l. 29--><p class="noindent" >Switching from the behavior to the structure is performed on Alt+S and vice versa on Alt+B.
<a
- id="x24-102001r126"></a>
+ id="x26-157001r211"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.9.2 </span> <a
- id="x24-1030002"></a>Details</h4>
-<!--l. 331--><p class="noindent" >This simple example re-uses the PingPong tutorial. The static part of the system introduces a <span
-class="ec-lmtt-10">TimingService </span>as SPP and
-the <span
-class="ec-lmtt-10">Receiver </span>embedded in the optional part uses a SAP of this protocol.
-</p><!--l. 334--><p class="noindent" >The sub system during initialization adds broker ports to the optional actor interface that are connected to all available
-services.
-</p><!--l. 337--><p class="noindent" >On the other hand the factory for the optional actor maps SAPs to those broker ports.
+<h4 class="subsectionHead"><span class="titlemark">6.1.2 </span> <a
+ id="x26-1580002"></a>Model Navigation</h4>
+<!--l. 33--><p class="noindent" >Model file paths in import statements are hyper links that can be clicked with the Ctrl key pressed.
+</p><!--l. 35--><p class="noindent" ><img
+src="images/041-open-declaration.jpg" alt="PIC"
+ />
+</p><!--l. 37--><p class="noindent" >An alternative is to use F3 (open declaration) with the cursor inside the file name.
+</p><!--l. 39--><p class="noindent" >In a similar way references to model elements can be navigated using F3 or Ctrl-Click, e.g. the protocol class of a port or the
+actor class of an actor reference or the data class of an attribute and many more.
+</p><!--l. 42--><p class="noindent" >The "quick outline" is a means that allows fast navigation in a single model. Ctrl-O opens a window similar to the outline
+view. Typing text (with possible wild cards * and ?) filters the view and selecting an element and pressing return locates the
+element in the editor.
+</p><!--l. 46--><p class="noindent" >Ctrl-Shift-G searches references to model elements. E.g. "Find references" for a selected actor class lists all locations in
+ROOM models and diagrams that refer to this actor class.
+</p><!--l. 49--><p class="noindent" >Using the outline, also imported elements can be browsed and navigated.
<a
- id="x24-103001r127"></a>
+ id="x26-158001r212"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.1.3 </span> <a
+ id="x26-1590003"></a>Navigating Behavior Diagrams</h4>
+<!--l. 53--><p class="noindent" >The behavior editor displays a hierarchical state machine. States can have a sub state graph and thus the hierarchy of states
+and state graphs forms a tree like structure. The eTrice behavior editor always shows only one level of the hierarchy. The
+editor switches to the sub state graph of a state by double clicking it. The path of the currently displayed
+state graph is indicated in the upper right corner using state names separated by slashes (/). A single slash
+indicates the top level. Double click into the empty space of a state graph will switch to the state graph one level
+up.
+</p><!--l. 60--><p class="noindent" >A double click on a transition (or its label), a transition point or a choice point opens their property dialog. A
+double click on a state opens its property dialog if it has no sub state graph or it switches to its sub state
+graph.
+<a
+ id="x26-159001r213"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.1.4 </span> <a
+ id="x26-1600004"></a>Navigating Structure Diagrams</h4>
+<!--l. 65--><p class="noindent" >The context menu of a structure diagram (invoked in the empty space inside the bounding rectangle) contains an entry
+"Open Class Behavior" which opens the behavior diagram (same as Alt+B).
+</p><!--l. 68--><p class="noindent" >The context menu of an actor reference contains entries: "Open Ref Structure" and "Open Ref Behavior" that allow to open
+the associated diagrams of the referenced actor class.
+
+
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.9.3 </span> <a
- id="x24-1040003"></a>Noteworthy</h4>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">Caution: </span>currently the generator informs about unsatisfied services in dynamic actors. But it is still possible to
- create such an instance. The consequence is an unbound SAP</li></ul>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch5.html" >next</a>] [<a
-href="etrice-docse17.html" >prev</a>] [<a
-href="etrice-docse17.html#tailetrice-docse17.html" >prev-tail</a>] [<a
+href="etrice-docse19.html" >next</a>] [<a
+href="etrice-docch6.html" >prev</a>] [<a
+href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
href="etrice-docse18.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse18.html" >up</a>] </p></div>
+href="etrice-docch6.html#etrice-docse18.html" >up</a>] </p></div>
<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse18.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html
index 793c53d22..2ecac9c11 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html
@@ -4,259 +4,1929 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Actors</title>
+<head><title>eTrice Java Projects</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:08:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 8--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse20.html" >next</a>] [<a
-href="etrice-docch5.html" >prev</a>] [<a
-href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
+href="etrice-docse18.html" >prev</a>] [<a
+href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
href="#tailetrice-docse19.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse19.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.1 </span> <a
- id="x26-1060001"></a>Actors</h3>
+href="etrice-docch6.html#etrice-docse19.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.2 </span> <a
+ id="x27-1610002"></a>eTrice Java Projects</h3>
+<!--l. 3--><p class="noindent" >There are two flavors of eTrice Java projects. The first one uses the Eclipse JDT build and the second one uses Maven to
+build and deploy an eTrice application.
+</p><!--l. 6--><p class="noindent" >The kind of build can be selected in the "Empty eTrice Java project" wizard.
<a
- id="x26-106001r128"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.1.1 </span> <a
- id="x26-1070001"></a>Description</h4>
-<!--l. 12--><p class="noindent" >The actor is the basic structural building block for building systems with ROOM. An actor can be refined hierarchically and
-thus can be of arbitrarily large scope. Ports define the interface of an actor. An actor can also have a behavior usually defined
-by a finite state machine.
-<a
- id="x26-107001r131"></a>
+ id="x27-161001r214"></a>
</p>
-
-
-<h4 class="subsectionHead"><span class="titlemark">5.1.2 </span> <a
- id="x26-1080002"></a>Motivation</h4>
+<h4 class="subsectionHead"><span class="titlemark">6.2.1 </span> <a
+ id="x27-1620001"></a>Eclipse JDT Build</h4>
+<!--l. 10--><p class="noindent" >If this kind of build is chosen the eTrice new project wizard requires the <span
+class="ec-lmtt-10">org.eclipse.etrice.runtime.java </span>project in the
+workspace and adds a dependency to it.
+</p><!--l. 13--><p class="noindent" >If the project uses other eTrice projects (e.g. the <span
+class="ec-lmtt-10">org.eclipse.etrice.modellib.java</span>) they have to be added to the Java
+build path as well.
+</p><!--l. 16--><p class="noindent" >The eTrice new project wizard creates the following files for the JDT build </p>
<ul class="itemize1">
- <li class="itemize">Actors enable the construction of hierarchical structures by composition and layering
+ <li class="itemize">a ROOM model file with exemplary classes
</li>
- <li class="itemize">Actors have their own logical thread of execution
+ <li class="itemize">a simple physical model
</li>
- <li class="itemize">Actors can be freely deployed
+ <li class="itemize">a model mapping the logical entities of the ROOM model to the physical entities
</li>
- <li class="itemize">Actors define potentially re-usable blocks</li></ul>
+ <li class="itemize">a launch configuration that invokes the eTrice Java code generator for the new models
+ </li>
+ <li class="itemize">a launch configuration that launches the main method of the generated code</li></ul>
+<!--l. 25--><p class="noindent" >If "build automatically" is chosen the newly created model can be generated and launched with just two clicks.
<a
- id="x26-108001r132"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.1.3 </span> <a
- id="x26-1090003"></a>Notation</h4>
-<div class="table">
+ id="x27-162001r216"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.2.2 </span> <a
+ id="x27-1630002"></a>Maven Build</h4>
+<!--l. 29--><p class="noindent" >The Maven integration of eTrice requires the m2eclipse plug-in installed. The dependencies are then managed by the Maven
+pom.xml but the m2e builder maps them as JDT visible dependencies to the project class path.
+</p><!--l. 32--><p class="noindent" >The eTrice new project wizard creates the following files for the Maven build </p>
+ <ul class="itemize1">
+ <li class="itemize">a ROOM model file with exemplary classes
+ </li>
+ <li class="itemize">a simple physical model
+ </li>
+ <li class="itemize">a model mapping the logical entities of the ROOM model to the physical entities
+ </li>
+ <li class="itemize">a launch configuration that invokes the eTrice Java code generator for the new models
+ </li>
+ <li class="itemize">a launch configuration that builds and deploys the generated application
-<!--l. 30--><p class="noindent" ><a
- id="x26-109001r1"></a></p><hr class="float" /><div class="float"
->
+ </li>
+ <li class="itemize">a launch configuration that launches the deployed jar file
+ </li>
+ <li class="itemize">a launch configuration that launches the main method of the generated code (for convenience or if the generated
+ code should be launched in debug mode)</li></ul>
+<!--l. 44--><p class="noindent" >After the new project is created the m2e builder creates the dependencies in the project class path. Therefore also JDT can
+compile and launch the application.
+<a
+ id="Q1-27-218"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x27-1640002"></a>Example</h5>
+<!--l. 49--><p class="noindent" >As an example we want to use the <a
+href="etrice-docse8.html#x12-470006">Ping Pong Tutorial (Java and C)<!--tex4ht:ref: sec:ping_pong_tutorial --></a>.
+</p><!--l. 51--><p class="noindent" >For this example we start with an empty workspace. We create a new eTrice project using the "Empty eTrice Java Project"
+wizard which results in a workspace looking like:
+</p><!--l. 55--><p class="noindent" ><img
+src="images/042-after-project-creation.png" alt="PIC"
+ />
+</p><!--l. 57--><p class="noindent" >The only difference to the first version of this example is the resolution of the <span
+class="ec-lmtt-10">TimingService </span>using a classpath
+scheme:
+</p>
+<!--l. 60-->
+<div class="lstlisting" id="listing-61"><span class="label"><a
+ id="x27-164001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">service</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timing</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">classpath</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span>
+</div>
+<!--l. 64--><p class="noindent" >It is possible to navigate to the imported model:
+</p><!--l. 66--><p class="noindent" ><img
+src="images/042-navigate-import.png" alt="PIC"
+ />
+</p><!--l. 68--><p class="noindent" >but the model is read-only. It is found on the class path of the project which is derived from the project pom&#8217;s
+dependencies:
+</p>
+<!--l. 70-->
+<div class="lstlisting" id="listing-62"><span class="label"><a
+ id="x27-164002r1"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">dependency</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164006r5"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">dependency</span><span
+class="ec-lmtt-9">&#x003E;</span>
+</div>
+<!--l. 78--><p class="noindent" >Since during the generate-sources life cycle phase the same dependency is needed we have to add it also to our eTrice
+generator plug-in:
+</p>
+<!--l. 81-->
+<div class="lstlisting" id="listing-63"><span class="label"><a
+ id="x27-164007r1"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">build</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164008r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">plugins</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164009r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">plugin</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164010r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164011r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">generator</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164012r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164013r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[...]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164014r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">dependencies</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164015r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">put</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">on</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">class</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">path</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">to</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allow</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">resolution</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">models</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generator</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164016r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">dependency</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164017r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164018r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164019r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164020r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">dependency</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164021r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">dependencies</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164022r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">plugin</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164023r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">plugins</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164024r18"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">build</span><span
+class="ec-lmtt-9">&#x003E;</span>
+</div>
+<!--l. 102--><p class="noindent" >Now we start the build, e.g. by entering <span
+class="ec-lmtt-10">mvn clean package </span>on the command line or by launching Maven using m2e.
+Maven will download all needed artifacts. The build should succeed and contain somewhere the generator
+output:
+</p>
+<!--l. 106-->
+<div class="lstlisting" id="listing-64"><span class="label"><a
+ id="x27-164025r1"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reading</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">models</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164026r2"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">added</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etmap</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164027r3"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Loading</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etmap</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164028r4"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">added</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">referenced</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164029r5"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">added</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">referenced</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164030r6"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Loading</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164031r7"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">added</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">referenced</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">classpath</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164032r8"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Loading</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">jar</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">Users</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">hrentz</span><span
+class="ec-lmtt-9">/.</span><span
+class="ec-lmtt-9">m2</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">repository</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">/0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">-0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">jar</span><span
+class="ec-lmtt-9">!/</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164033r9"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Loading</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">file</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164034r10"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">validating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">models</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164035r11"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">validation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">finished</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">errors</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">warnings</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164036r12"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generator</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164037r13"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">GeneratorModelBuilder</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">system</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">class</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">LogSys1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164038r14"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">GeneratorModelBuilder</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">creating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subsystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instance</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subSysRef1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164039r15"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">starting</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">code</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generation</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164040r16"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">clearing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164041r17"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">clearing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164042r18"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">PingPongProtocol</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164043r19"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">PingPongTop</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164044r20"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">Receiver</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164045r21"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">Sender</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164046r22"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Node</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">Node_nodeRef1_subSysRef1</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164047r23"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generating</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubSystemRunner</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implementation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">Node_nodeRef1_subSysRef1Runner</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">:\</span><span
+class="ec-lmtt-9">eTrice</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">tutorial</span><span
+class="ec-lmtt-9">\</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">src</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">gen</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164048r24"></a></span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">INFO</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">finished</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">code</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generation</span>
+</div>
+<!--l. 133--><p class="noindent" >When the packaging of the project succeeded two jar files have been created in the <span
+class="ec-lmtt-10">target </span>folder. The larger one with
+"jar-with-dependencies" in its name also contains the referenced Maven components. It can be launched using the <span
+class="ec-lmtt-10">runjar_*</span>
+launch configuration.
- <div class="caption"
-><span class="id">Table&#x00A0;5.1: </span><span
-class="content">Actor Class Notation</span></div><!--tex4ht:label?: x26-109001r1 -->
-<div class="tabular"> <table id="TBL-3" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-3-1g"><col
-id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col
-id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col
-id="TBL-3-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3"
-class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
-class="td11"> ActorClass </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
-class="td11"> <img
-src="images/040-ActorClassNotation.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3"
-class="td11"> <!--l. 36--> <!--l. 36--><p class="noindent" ><div class="lstlisting" id="listing-30"><span class="label"><a
- id="x26-109002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+</p><!--l. 137--><p class="noindent" >Finally we want to mention that the generator switches are passed as arguments to the plug-in. In the pom you can find the
+most commonly used ones in xml comments together with a comment:
+</p>
+<!--l. 140-->
+<div class="lstlisting" id="listing-65"><span class="label"><a
+ id="x27-164049r1"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">plugin</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164050r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{}</span>
- </div> </p> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
-class="td11"> ActorRef </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
-class="td11"> <img
-src="images/040-ActorReferenceNotation.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3"
-class="td11"> <!--l. 41--> <!--l. 41--><p class="noindent" ><div class="lstlisting" id="listing-31"><span class="label"><a
- id="x26-109003r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">groupId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164051r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">generator</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">java</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">mvn</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">artifactId</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164052r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">0.5.0-</span><span
+class="ec-lmtt-9">SNAPSHOT</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmssbx-10x-x-90">version</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164053r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">executions</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164054r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">execution</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164055r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">goals</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164056r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">goal</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">eTriceJavaGenerator</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">goal</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164057r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">goals</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164058r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">configuration</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164059r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164060r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allowed</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">switches</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generator</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">not</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">complete</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164061r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">store</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">restore</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">using</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">POJO</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">objects</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164062r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">storeDataObj</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164063r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164064r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MSC</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instrumentation</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164065r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">msc_instr</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164066r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164067r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">persistence</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dynamic</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actors</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164068r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">persistable</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164069r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164070r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">all</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ROOM</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">classes</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">as</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">library</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164071r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">lib</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164072r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164073r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">documentation</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164074r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">genDocu</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164075r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164076r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass1</span><span
+class="ec-lmtt-9">generate</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">files</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incrementally</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">overwrite</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">only</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">if</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">contents</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">changed</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164077r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">inc</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164078r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164079r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etmap</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">param</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164080r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164081r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">configuration</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164082r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">execution</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164083r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">executions</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164084r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">dependencies</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164085r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[...]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164086r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">dependencies</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164087r39"></a></span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">plugin</span><span
+class="ec-lmtt-9">&#x003E;</span>
+</div>
+<!--l. 182--><p class="noindent" >E.g. for our example you might want to use the <span
+class="ec-lmtt-10">-msc_instr </span>switch to generate MSCs.
+</p><!--l. 184--><p class="noindent" >Finally for reference we show the complete ROOM model of this example:
+</p>
+<!--l. 186--><div class="lstinputlisting">
+<a
+ id="x27-164088r1"></a>
+<a
+ id="x27-164089"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164090r1"></a></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MavenPingPong</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-109004r2"></a></span><span
+ id="x27-164091r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164092r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">service</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timing</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">classpath</span><span
+class="ec-lmtt-9">:/</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164093r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164094r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">LogSys1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-109005r3"></a></span><span
+ id="x27-164095r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subSysRef1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164096r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164097r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164098r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164099r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PingPongTop</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164100r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorReference</span><span
+class="ec-lmtt-9">timingService</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">ATimingService</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164101r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timingService</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164102r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-109006r4"></a></span><span
+ id="x27-164103r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">defaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164104r15"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-109007r5"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
-</div>
-<a
- id="x26-109008r133"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.1.4 </span> <a
- id="x26-1100004"></a>Details</h4>
-<a
- id="Q1-26-136"></a>
-<h5 class="likesubsubsectionHead"><a
- id="x26-1110004"></a>Actor Classes, Actor References, Ports and Bindings</h5>
-<!--l. 57--><p class="noindent" >An <span id="textcolor1"><span
-class="ec-lmssbx-10">ActorClass</span></span> defines the type (or blueprint) of an actor. Hierarchies are built by <span id="textcolor2"><span
-class="ec-lmssbx-10">ActorClass</span></span>es that contain
-<span id="textcolor3"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences which have another <span id="textcolor4"><span
-class="ec-lmssbx-10">ActorClass</span></span> as type. The interface of an <span id="textcolor5"><span
-class="ec-lmssbx-10">ActorClass</span></span> is always defined by <span id="textcolor6"><span
-class="ec-lmssbx-10">Port</span></span>s. The
-<span id="textcolor7"><span
-class="ec-lmssbx-10">ActorClass</span></span> can also contain <span id="textcolor8"><span
-class="ec-lmssbx-10">Attribute</span></span>s, <span id="textcolor9"><span
-class="ec-lmssbx-10">Operation</span></span>s and a finite <span id="textcolor10"><span
-class="ec-lmssbx-10">StateMachine</span></span>.
-</p><!--l. 63--><p class="noindent" >External <span id="textcolor11"><span
-class="ec-lmssbx-10">Port</span></span>s define the external interface of an actor and are defined in the <span id="textcolor12"><span
-class="ec-lmssbx-10">Interface</span></span> section of the <span id="textcolor13"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 66--><p class="noindent" >Internal <span id="textcolor14"><span
-class="ec-lmssbx-10">Port</span></span>s define the internal interface of an actor and are defined in the <span id="textcolor15"><span
-class="ec-lmssbx-10">Structure</span></span> section of the <span id="textcolor16"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 69--><p class="noindent" ><span id="textcolor17"><span
-class="ec-lmssbx-10">Binding</span></span>s connect <span id="textcolor18"><span
-class="ec-lmssbx-10">Port</span></span>s inside an <span id="textcolor19"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 71--><p class="noindent" >Let us have a look at example <a
-href="#x26-111001r2">5.2<!--tex4ht:ref: tab:actor_class_example --></a>:
-</p>
-<div class="table">
-
-
-<!--l. 74--><p class="noindent" ><a
- id="x26-111001r2"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;5.2: </span><span
-class="content">Actor Class Example</span></div><!--tex4ht:label?: x26-111001r2 -->
-<div class="tabular"> <table id="TBL-4" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-4-1g"><col
-id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col
-id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col
-id="TBL-4-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
-class="td11"> <img
-src="images/040-ActorClass.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
-class="td11"> <!--l. 80--> <!--l. 80--><p class="noindent" ><div class="lstlisting" id="listing-32"><span class="label"><a
- id="x26-111002r1"></a></span><span
+ id="x27-164105r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164106r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass1</span><span
+class="ec-lmtt-9">PingPongTop</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111003r2"></a></span><span
+ id="x27-164107r18"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111004r3"></a></span><span
+ id="x27-164108r19"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port1</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">Sender</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111005r4"></a></span><span
+ id="x27-164109r20"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port4</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">Receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164110r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">sender</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111006r5"></a></span><span
+ id="x27-164111r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111007r6"></a></span><span
+ id="x27-164112r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111008r7"></a></span><span
+ id="x27-164113r24"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164114r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164115r26"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">Sender</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164116r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111009r8"></a></span><span
+ id="x27-164117r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
@@ -264,517 +1934,720 @@ class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">Port</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">receiver</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">PingPongProtocol</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111010r9"></a></span><span
+ id="x27-164118r29"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164119r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164120r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">Port</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port3</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164121r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164122r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164123r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">StateMachine</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164124r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SendingPing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111011r10"></a></span><span
+ id="x27-164125r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr0</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">SendingPing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ReceivedPong</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111012r11"></a></span><span
+ id="x27-164126r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164127r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">pong</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass3</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111013r12"></a></span><span
+ id="x27-164128r39"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port2</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port5</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111014r13"></a></span><span
+ id="x27-164129r40"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port3</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port6</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111015r14"></a></span><span
+ id="x27-164130r41"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port7</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port4</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SendingPing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111016r15"></a></span><span
+ id="x27-164131r42"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port8</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164132r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">receiver</span><span
class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port9</span><span
+class="ec-lmtt-9">ping</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111017r16"></a></span><span
+ id="x27-164133r44"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-111018r17"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
-</div>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">ActorClass1 </span>contains two <span id="textcolor20"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences (of ActorClass2 and ActorClass3)
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port1 </span>is an <span
-class="ec-lmsso-10">external end port</span>. Since it connects external actors with the behavior of the <span id="textcolor21"><span
-class="ec-lmssbx-10">ActorClass</span></span>, it is
- defined in the <span id="textcolor22"><span
-class="ec-lmssbx-10">Interface</span></span> section and the <span id="textcolor23"><span
-class="ec-lmssbx-10">Structure</span></span> section of the <span id="textcolor24"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port2 </span>and <span
-class="ec-lmsso-10">port3 </span>are <span
-class="ec-lmsso-10">internal end ports </span>and can only be connected to the ports of contained <span id="textcolor25"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences.
- Internal end ports connect the behavior of an <span id="textcolor26"><span
-class="ec-lmssbx-10">ActorClass</span></span> with its contained <span id="textcolor27"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port4 </span>is a relay port and connects external Actors to contained <span id="textcolor28"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences. This port can not be accessed
- by the behavior of the <span id="textcolor29"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port5 </span>through <span
-class="ec-lmsso-10">port9 </span>are ports of contained actor references. <span
-class="ec-lmsso-10">port8 </span>and <span
-class="ec-lmsso-10">port9 </span>can communicate without
- interference with the containing actor class.
- </li>
- <li class="itemize"><span id="textcolor30"><span
-class="ec-lmssbx-10">Binding</span></span>s can connect ports of the actor class and its contained actor references.</li></ul>
-<a
- id="Q1-26-139"></a>
-<h5 class="likesubsubsectionHead"><a
- id="x26-1120004"></a>Attributes</h5>
-<!--l. 120--><p class="noindent" ><span id="textcolor31"><span
-class="ec-lmssbx-10">Attribute</span></span>s are part of the <span id="textcolor32"><span
-class="ec-lmssbx-10">Structure</span></span> of an actor class. They can be of a <span id="textcolor33"><span
-class="ec-lmssbx-10">PrimitiveType</span></span> or a <span id="textcolor34"><span
-class="ec-lmssbx-10">DataClass</span></span>.
-</p><!--l. 123--><p class="noindent" >Example:
-</p>
-<!--l. 126-->
-<div class="lstlisting" id="listing-33"><span class="label"><a
- id="x26-112001r1"></a></span><span
+ id="x27-164134r45"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164135r46"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ReceivedPong</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164136r47"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164137r48"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164138r49"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164139r50"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164140r51"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass3</span><span
+class="ec-lmtt-9">Receiver</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-112002r2"></a></span><span
+ id="x27-164141r52"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-112003r3"></a></span><span
+ id="x27-164142r53"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">PingPongProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164143r54"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164144r55"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164145r56"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-112004r4"></a></span><span
+ id="x27-164146r57"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timing</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">PTimer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164147r58"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164148r59"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-112005r5"></a></span><span
+ id="x27-164149r60"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">StateMachine</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164150r61"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">WaitingForPing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-112006r6"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<a
- id="Q1-26-141"></a>
-<h5 class="likesubsubsectionHead"><a
- id="x26-1130004"></a>Operations</h5>
-<!--l. 137--><p class="noindent" ><span id="textcolor35"><span
-class="ec-lmssbx-10">Operation</span></span>s are part of the <span id="textcolor36"><span
-class="ec-lmssbx-10">Behavior</span></span> of an actor class. Arguments and return values can be of a <span id="textcolor37"><span
-class="ec-lmssbx-10">PrimitiveType</span></span> or a
-<span id="textcolor38"><span
-class="ec-lmssbx-10">DataClass</span></span>. Data classes can be passed by value (implicit) or by reference (<span id="textcolor39"><span
-class="ec-lmssbx-10">ref</span></span>).
-</p><!--l. 140--><p class="noindent" >Example:
-</p>
-<!--l. 144-->
-<div class="lstlisting" id="listing-34"><span class="label"><a
- id="x26-113001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x27-164151r62"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr0</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">WaitingForPing</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass4</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">WaitingForAWhile</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113002r2"></a></span><span
+ id="x27-164152r63"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113003r3"></a></span><span
+ id="x27-164153r64"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">ping</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113004r4"></a></span><span
+ id="x27-164154r65"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164155r66"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164156r67"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">WaitingForAWhile</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SentPong</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113005r5"></a></span><span
+ id="x27-164157r68"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113006r6"></a></span><span
+ id="x27-164158r69"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">timeout</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timing</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164159r70"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113007r7"></a></span><span
+ id="x27-164160r71"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164161r72"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">WaitingForPing</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113008r8"></a></span><span
+ id="x27-164162r73"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float64</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">SentPong</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164163r74"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">uint16</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113009r9"></a></span><span
+ id="x27-164164r75"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">pong</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">;</span><span
class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113010r10"></a></span><span
+ id="x27-164165r76"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113011r11"></a></span><span
+ id="x27-164166r77"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164167r78"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113012r12"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">WaitingForAWhile</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164168r79"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">entry</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113013r13"></a></span><span
+ id="x27-164169r80"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">timing</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">startTimeout</span><span
+class="ec-lmtt-9">(1000)</span><span
+class="ec-lmtt-9">;</span><span
class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113014r14"></a></span><span
+ id="x27-164170r81"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113015r15"></a></span><span
+ id="x27-164171r82"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164172r83"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reference</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">except</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164173r84"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113016r16"></a></span><span
+ id="x27-164174r85"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164175r86"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164176r87"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">PingPongProtocol</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation4</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164177r88"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164178r89"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ping</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164179r90"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164180r91"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">outgoing</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113017r17"></a></span><span
+ id="x27-164181r92"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pong</span><span
+class="ec-lmtt-9">()</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113018r18"></a></span><span
+ id="x27-164182r93"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113019r19"></a></span><span
+ id="x27-164183r94"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x26-113020r20"></a></span><span
+ id="x27-164184r95"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x27-164185r96"></a></span><span
class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.1:
+ </span><span
+class="content">ROOM
+ example
+ code</span></div><!--tex4ht:label?: x27-1640006 -->
</div>
-
-
-<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse20.html" >next</a>] [<a
-href="etrice-docch5.html" >prev</a>] [<a
-href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
+href="etrice-docse18.html" >prev</a>] [<a
+href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
href="etrice-docse19.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse19.html" >up</a>] </p></div>
-<!--l. 167--><p class="noindent" ><a
+href="etrice-docch6.html#etrice-docse19.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse19.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
index 074487480..63444fe14 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -266,8 +266,8 @@ have to add more details to your model to make a LED blinking, but for the curre
is realized. This will be done in the next lower level of the hierarchy.
</p><!--l. 179--><p class="noindent" >This simple example might give an idea how powerful this mechanisms is.
</p><!--l. 181--><p class="noindent" >The hierarchical FSM provides a rich tool box to describe real world problems (see chapter <a
-href="etrice-docch5.html#x25-1050005">5<!--tex4ht:ref: sec:room_concepts --></a> <a
-href="etrice-docch5.html#x25-1050005">ROOM Concepts<!--tex4ht:ref: sec:room_concepts --></a>).
+href="etrice-docch5.html#x18-1230005">5<!--tex4ht:ref: sec:room_concepts --></a> <a
+href="etrice-docch5.html#x18-1230005">ROOM Concepts<!--tex4ht:ref: sec:room_concepts --></a>).
<a
id="Q1-5-24"></a>
</p>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html
index bfde105a0..f5a43129a 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html
@@ -4,135 +4,365 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Protocols</title>
+<head><title>Automatic Diagram Layout with KIELER</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse21.html" >next</a>] [<a
href="etrice-docse19.html" >prev</a>] [<a
href="etrice-docse19.html#tailetrice-docse19.html" >prev-tail</a>] [<a
href="#tailetrice-docse20.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse20.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.2 </span> <a
- id="x27-1140002"></a>Protocols</h3>
-<a
- id="x27-114001r135"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.2.1 </span> <a
- id="x27-1150001"></a>Description</h4>
-<!--l. 171--><p class="noindent" >A <span id="textcolor40"><span
-class="ec-lmssbx-10">ProtocolClass</span></span> defines a set of incoming and outgoing <span id="textcolor41"><span
-class="ec-lmssbx-10">Message</span></span>s that can be exchanged between two ports. The exact
-semantics of a message is defined by the execution model.
-<a
- id="x27-115001r144"></a>
+href="etrice-docch6.html#etrice-docse20.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.3 </span> <a
+ id="x28-1650003"></a>Automatic Diagram Layout with KIELER</h3>
+<a
+ id="x28-165001r217"></a>
+<h4 class="subsectionHead"><span class="titlemark">6.3.1 </span> <a
+ id="x28-1660001"></a>Overview</h4>
+<!--l. 5--><p class="noindent" >eTrice provides as a feature the automatic layout of the ROOM diagrams in its graphical editors. This helps in improving the
+pragmatics of the diagrams and frees the user from the burden of manually lay-outing the diagrams on the
+canvas.
+</p><!--l. 9--><p class="noindent" >The automatic lay-outing has been provided with the help of the well known KIELER framework, which focuses on the
+pragmatics of model-based system design, which can improve comprehensibility of diagrams, improve development and
+maintenance time, and improve the analysis of dynamic behavior.
+</p><!--l. 13--><p class="noindent" >This chapter will answer the following questions </p>
+ <ul class="itemize1">
+ <li class="itemize"><a
+href="#x28-1670002">&#8221;How to perform automatic layout in the graphical editors of eTrice?&#8221;</a>
+ </li>
+ <li class="itemize"><a
+href="#x28-1680003">&#8221;What are layout options?&#8221;</a>
+ </li>
+ <li class="itemize"><a
+href="#x28-1690004">&#8221;How to configure the layout options to alter the diagram layout as desired?&#8221;</a></li></ul>
+<!--l. 21--><p class="noindent" >Moreover, some <a
+href="#x28-1720005">&#8221;special layout options&#8221;</a> will also be discussed.
+<a
+ id="x28-166001r222"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.3.2 </span> <a
+ id="x28-1670002"></a>Performing Automatic Layout</h4>
+<!--l. 26--><p class="noindent" >Automatic layout could be performed in eTrice graphical editors using the command to layout the current
+diagram.
+
+
+</p><!--l. 29--><p class="noindent" >This command is available in
+</p>
+ <ul class="itemize1">
+ <li class="itemize">The context menu of the diagrams
+ </li>
+ <li class="itemize">Using the <span
+class="ec-lmsso-10">Ctrl+R L </span>shortcut.</li></ul>
+<!--l. 36--><p class="noindent" >Additionally, an entry in the context menu allows to layout only a selected part of the diagram.
+<a
+ id="x28-167001r223"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.3.3 </span> <a
+ id="x28-1680003"></a>Layout Options</h4>
+<!--l. 41--><p class="noindent" >A layout option is a customization point for the layout algorithms, with a specific data type and optionally a
+default value, used to affect how the active layout algorithm computes concrete coordinates for the graph
+elements.
+</p><!--l. 45--><p class="noindent" >User-configurable layout options for a particular diagram object can be viewed and configured through the Layout View.The
+Layout View can be opened from the context menu of a selected diagram object by clicking the <span
+class="ec-lmsso-10">Show Layout View</span>
+entry.
+</p><!--l. 49--><p class="noindent" >On opening the layout view, and selecting any layout option, a description of the layout option is available in the footer of
+eclipse SDK. This is shown in figure <a
+href="#x28-168001r1">6.1<!--tex4ht:ref: fig:layout_options --></a>.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x28-168001r1"></a>
+
+
+
+<!--l. 53--><p class="noindent" ><img
+src="images/043-LayoutOptionDescription.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;6.1: </span><span
+class="content">Layout options</span></div><!--tex4ht:label?: x28-168001r1 -->
+
+
+</div><hr class="endfigure" />
+<a
+ id="x28-168002r224"></a>
+<h4 class="subsectionHead"><span class="titlemark">6.3.4 </span> <a
+ id="x28-1690004"></a>Configuring Layout Options</h4>
+<!--l. 61--><p class="noindent" >The values of the layout options for a particular diagram object (in the visible diagram) can be changed using
+the Layout View of that diagram object. The initial values are the predefined <span
+class="ec-lmsso-10">default </span>values. These defaults
+can be changed using the context menu in Layout View as well as the Layout preference pages provided by
+eTrice.
+<a
+ id="Q1-28-227"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x28-1700004"></a>The Layout View</h5>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x28-170001r2"></a>
+
+
+
+<!--l. 70--><p class="noindent" ><img
+src="images/043-LayoutView.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;6.2: </span><span
+class="content">Layout view</span></div><!--tex4ht:label?: x28-170001r2 -->
+
+
+</div><hr class="endfigure" />
+<!--l. 75--><p class="noindent" >The Layout view (figure <a
+href="#x28-170001r2">6.2<!--tex4ht:ref: fig:layout_view --></a>) allows flexible customization of layout options for the selected objects in the eTrice diagram.
+If no object is selected, the view shows the options for the top-level container of the diagram. Options are
+stored persistently in diagram file (<span
+class="ec-lmsso-10">.structure file / </span>.behavior file) of the eTrice diagram, so that they are still
+available after the next Eclipse restart. Of course this requires the diagram to be saved after an option was
+changed.
+</p><!--l. 81--><p class="noindent" >The options are grouped according to the function of the selected objects. The group Nodes (respectively Edges, Ports, or
+Labels) contains options related to the object itself, such as its size or priority, while the group Parents contains options for
+the elements contained in the selected objects, such as the applied layout algorithm or the spacing between elements. Which
+layout options are displayed depends on the types of selected objects and the active layout algorithm, since each algorithm
+supports only a subset of the available options. Furthermore, some options are only visible if the <span
+class="ec-lmsso-10">Show Advanced</span>
+<span
+class="ec-lmsso-10">Properties </span>button in the view toolbar is activated. The group types can be hidden using the Show Categories
+button.
+</p><!--l. 90--><p class="noindent" >An option can be changed by selecting or entering a new value in the corresponding cell of the Value column.
+</p><!--l. 92--><p class="noindent" >The most important option is Layout Algorithm, which is used to determine the layout algorithm for the contents of
+the selected element. Here either a specific layout algorithm or a layout type can be chosen; in the latter
+case, the most suitable layout algorithm of the given type is taken. By changing the active layout algorithm,
+the content of the layout view is updated to display only those options that are supported by the new layout
+algorithm.
+</p><!--l. 98--><p class="noindent" >Selecting <span
+class="ec-lmsso-10">Restore Default Value </span>in the context menu or the view toolbar (figure <a
+href="#x28-170002r3">6.3<!--tex4ht:ref: fig:layout_context_menu --></a>) removes any value for the currently
+selected option that is stored in the current model file, thus resetting the option to its default value. The view menu has an
+entry Remove all Layout Options which resets all options of the current model by removing persistent data in the model
+file.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x28-170002r3"></a>
+
+
+
+<!--l. 105--><p class="noindent" ><img
+src="images/043-ContextMenu.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;6.3: </span><span
+class="content">Layout in context menu</span></div><!--tex4ht:label?: x28-170002r3 -->
+
+
+</div><hr class="endfigure" />
+<!--l. 110--><p class="noindent" >The context menu for a specific layout option has different alternatives to set the currently active value as <span
+class="ec-lmsso-10">default</span>
+value:
</p>
-<h4 class="subsectionHead"><span class="titlemark">5.2.2 </span> <a
- id="x27-1160002"></a>Motivation</h4>
<ul class="itemize1">
- <li class="itemize">Protocol classes provide a reusable interface specification for ports
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for this Diagram</span>: Changes the open diagram file so that the same value is applied to all similar
+ objects (edit parts) of that diagram.
</li>
- <li class="itemize">Protocol classes can optionally specify valid message exchange sequences</li></ul>
-<a
- id="x27-116001r145"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.2.3 </span> <a
- id="x27-1170003"></a>Notation</h4>
-<!--l. 183--><p class="noindent" >Protocol classes have only textual notation. The example defines a protocol class with 2 incoming and two outgoing
-messages. Messages can have data attached. The data can be of a primitive type (e.g. int32, float64, ...) or a data
-class.
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for ... in this Context</span>: Applies the value to all similar objects that are displayed with the any of
+ the eTrice editors (the option is linked to the edit part class of the selected object).
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for all ...</span>: Links the option value with the domain model element or the diagram type of the
+ selected object (see the context menu depicted above).</li></ul>
+<!--l. 125--><p class="noindent" >These four alternatives have different priorities: if present, the default value for the current diagram is taken first, then the
+default value for the edit part is checked, then the default value for the domain model element, and then the default value for
+the diagram type.
+</p><!--l. 129--><p class="noindent" >Tips: </p>
+ <ul class="itemize1">
+ <li class="itemize">The information button of the view toolbar can be used to display some useful details on the current selection,
+ such as the edit part and domain model classes.
+ </li>
+ <li class="itemize">Default values for layout options can most easily be manipulated based on the eTrice domain model elements.</li></ul>
+<a
+ id="Q1-28-231"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x28-1710004"></a>Preference Page</h5>
+<!--l. 140--><p class="noindent" >The user-defined <span
+class="ec-lmsso-10">default </span>values for layout options can also be set using the preference pages provided in eTrice. Three
+preference pages have been provided for this purpose </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">Layout</span>: for general preferences regarding layout
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Behavior</span>: for setting default values of layout options for eTrice behavior diagrams
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Structure</span>: for setting default values of layout options for eTrice structure diagrams</li></ul>
+<!--l. 148--><p class="noindent" >These preference pages can be accessed via <span
+class="ec-lmsso-10">Windows &#x003E; Preferences &#x003E; </span><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">&#x003E; Layout</span>.
+</p><!--l. 150--><p class="noindent" >Note that the contents of these preference pages are in sync with the <span
+class="ec-lmsso-10">KIELER &#x003E; Layout </span>preference page
+provided by the KIELER. Relevant entries in the <span
+class="ec-lmsso-10">KIELER &#x003E; Layout </span>page are shown in the above preference
+pages.
+<a
+ id="Q1-28-233"></a>
+<span
+class="ec-lmssbo-10">Layout </span><span
+class="ec-lmssbx-10">Preference Page </span><br
+class="newline" />
+The <span
+class="ec-lmsso-10">Layout </span>preference page is meant to configure general options regarding the layout.
+If <span
+class="ec-lmsso-10">Set routing style of all edges to oblique </span>is active, all routing styles and smoothness settings of edges are removed when
+automatic layout is performed. Since most layouters compute the routing of edges as part of their algorithm, these styles
+usually do not yield the expected results.
+<a
+ id="Q1-28-234"></a>
+
+
+<span
+class="ec-lmssbo-10">Behavior </span><span
+class="ec-lmssbx-10">and </span><span
+class="ec-lmssbo-10">Structure </span><span
+class="ec-lmssbx-10">Preference Page </span><br
+class="newline" />
+The <span
+class="ec-lmsso-10">Behavior </span>and <span
+class="ec-lmsso-10">Structure </span>sub-preference pages help in setting up the default values of layout options in behavior and
+structure diagrams respectively.
+The <span
+class="ec-lmsso-10">Default Layout Option Values </span>table is used to manage the default setting for layout options, which can also be modified
+with the context menu of the layout view (see above). All user-defined settings are displayed here, and the buttons on the
+right of the table serve to create, edit, and remove entries. The Type column shows the type of element the option is
+linked with: either edit part, model element, or diagram type. The Element column shows the class name
+for options that relate to edit parts or domain model elements, and the diagram type name for options that
+relate to diagram types. Option is the name of the layout option, and Value is the currently set value of the
+option.
+Creating a new entry requires the selection of the type of related element (figure <a
+href="#x28-171001r4">6.4<!--tex4ht:ref: fig_layout_preference_page --></a>) and entering its class
+name or identifier. Class names of edit parts can be explored using the information button of the layout view,
+while the class names for the domain model elements and the diagram type identifiers for the diagram types
+can be selected with the Browse button. After that, a layout option has to be selected from the list using
+the corresponding Browse button. Hitting OK creates an entry, and its value can then be set using the Edit
+button.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x28-171001r4"></a><a
+ id="x30-18100047"></a><a
+ id="x31-18300048"></a>
+
+
+
+<img
+src="images/043-PreferencePage.png" alt="PIC"
+ />
+<br /> <div class="caption"
+><span class="id">Figure&#x00A0;6.4: </span><span
+class="content">Layout preference page</span></div><!--tex4ht:label?: x28-171001r4 -->
+
+
+</div><hr class="endfigure" />
+Note that the <span
+class="ec-lmsso-10">Behavior </span>preference page will show only those entries which hold for the behavior diagrams.
+Moreover, it will allow setting default values of layout options for only those domain model elements and diagram
+types which could be present in the behavior editor diagrams. Similar thing holds for the <span
+class="ec-lmsso-10">Structure </span>preference
+page.
+<a
+ id="x28-171002r226"></a>
+<h4 class="subsectionHead"><span class="titlemark">6.3.5 </span> <a
+ id="x28-1720005"></a>Special Layout Options</h4>
+<!--l. 198--><p class="noindent" >While most layout options are used to affect how the active layout algorithm computes concrete coordinates for the graph
+elements, there are some layout options that have a special role.
+<a
+ id="Q1-28-237"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x28-1730005"></a>Layout Algorithm</h5>
+<!--l. 203--><p class="noindent" >The option with identifier de.cau.cs.kieler.algorithm specifies which layout algorithm to use for the content of a composite
+node. The value can be either the identifier of a layout algorithm or the identifier of a layout type. In the latter case the
+algorithm with highest priority of that type is applied.
+</p><!--l. 207--><p class="noindent" >For the purpose of automatic diagram layout in eTrice, we use the <span
+class="ec-lmsso-10">Layered </span>algorithms which are meant for lay-outing
+hierarchical diagrams and are best suited for behavior and structure diagrams in eTrice. For the behavior diagrams we have
+used the <span
+class="ec-lmsso-10">Graphviz Dot </span>algorithm whereas for the structure diagrams we have used the <span
+class="ec-lmsso-10">KLay Layered </span>algorithm. Though the
+layout algorithm being used for performing layout can be changed at ones own will, it is recommended to use the
+defaults.
+<a
+ id="Q1-28-239"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x28-1740005"></a>Diagram Type</h5>
+<!--l. 215--><p class="noindent" >Diagram types are used to classify graphical diagrams for setting default layout option values for a set of similar diagrams.
+The diagram type of an element is specified with the layout option <span
+class="ec-lmtt-10">de.cau.cs.kieler.diagramType</span>. Thus, these help
+in
+</p><!--l. 219--><p class="noindent" >The following diagram types have been defined and used in eTrice: </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">General </span>- This type is automatically assigned to all diagrams for which no specific type is declared. (Predefined
+ in KIELER)
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">Behavior Diagrams </span>- This type has been assigned to the diagram objects in eTrice Behavior Diagrams.
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">Structure Diagrams </span>- This type has been assigned to the diagram objects in eTrice Structure Diagrams.</li></ul>
+<!--l. 228--><p class="noindent" >Note that not all diagrams objects in the behavior and structure diagrams are assigned the last two diagram types.
+Only the top-level container and the visible bounding box has been assigned these diagram types in respective
+editors.
+<a
+ id="x28-174001r236"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">6.3.6 </span> <a
+ id="x28-1750006"></a>Further References</h4>
+<!--l. 234--><p class="noindent" >Most parts of the above documentation have been taken from the "KIML wiki"
+(<a
+href="http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078" class="url" ><span
+class="ec-lmtt-10">http://rtsys.informatik.uni-_kiel.de/confluence/pages/viewpage.action?pageId=328078</span></a> and have been
+modified for automatic layout in eTrice. A more detailed description about the layout algorithms, predefined
+diagram types and the internal structure of KIELER Infrastructure for Meta-Layout (KIML) can be found
+there.
+
+
</p>
-<!--l. 188-->
-<div class="lstlisting" id="listing-35"><span class="label"><a
- id="x27-117001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117002r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">incoming</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117003r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m1</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">data</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117004r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m2</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117005r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117006r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">outgoing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117007r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">data</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117008r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m4</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117009r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x27-117010r10"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-
-
-<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse21.html" >next</a>] [<a
href="etrice-docse19.html" >prev</a>] [<a
href="etrice-docse19.html#tailetrice-docse19.html" >prev-tail</a>] [<a
href="etrice-docse20.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse20.html" >up</a>] </p></div>
-<!--l. 201--><p class="noindent" ><a
+href="etrice-docch6.html#etrice-docse20.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse20.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html
index 719a0e126..642e62f4e 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html
@@ -4,1008 +4,199 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Ports</title>
+<head><title>Annotations</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:08:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse22.html" >next</a>] [<a
href="etrice-docse20.html" >prev</a>] [<a
href="etrice-docse20.html#tailetrice-docse20.html" >prev-tail</a>] [<a
href="#tailetrice-docse21.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse21.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.3 </span> <a
- id="x28-1180003"></a>Ports</h3>
+href="etrice-docch6.html#etrice-docse21.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.4 </span> <a
+ id="x29-1760004"></a>Annotations</h3>
+<!--l. 3--><p class="noindent" >In eTrice it is possible to use annotations similar to Java annotations. Annotation types can be defined together with their
+targets and other properties and later they can be used.
+</p><!--l. 7--><p class="noindent" >Annotations can be processed by the code generator to influence its behavior.
<a
- id="x28-118001r146"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.3.1 </span> <a
- id="x28-1190001"></a>Description</h4>
-<!--l. 205--><p class="noindent" ><span id="textcolor42"><span
-class="ec-lmssbx-10">Port</span></span>s are the only interfaces of actors. A port has always a protocol assigned. Service Access Points (SAP) and Service
-Provision Points (SPP) are specialized ports that are used to define layering.
-<a
- id="x28-119001r148"></a>
+ id="x29-176001r241"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">5.3.2 </span> <a
- id="x28-1200002"></a>Motivation</h4>
- <ul class="itemize1">
- <li class="itemize">Ports decouple interface definition (protocols) from interface usage
- </li>
- <li class="itemize">Ports decouple the logical interface from the transport</li></ul>
-<a
- id="x28-120001r149"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.3.3 </span> <a
- id="x28-1210003"></a>Notation</h4>
-<a
- id="Q1-28-151"></a>
-<h5 class="likesubsubsectionHead"><a
- id="x28-1220003"></a>Class Ports</h5>
-<!--l. 220--><p class="noindent" >These symbols can only appear on the border of an actor class symbol.
-</p><!--l. 222--><p class="noindent" >Ports that define an external interface of the actor class, are defined in the <span id="textcolor43"><span
-class="ec-lmssbx-10">Interface</span></span>. Ports that define an internal interface
-are defined in the <span id="textcolor44"><span
-class="ec-lmssbx-10">Structure</span></span> (e.g. internal ports).
+<h4 class="subsectionHead"><span class="titlemark">6.4.1 </span> <a
+ id="x29-1770001"></a>Annotation Type Definitions</h4>
+<!--l. 11--><p class="noindent" >Examples of such definitions can be found in the files <span
+class="ec-lmtt-10">Annotations.room </span>which are part of the modellibs. They contain
+definitions of annotations that are recognized by the generator of the associated language.
+</p><!--l. 14--><p class="noindent" >Consider e.g. the annotations definitions for Java
</p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">External end ports </span>are defined in the Interface and the Structure
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">Internal end ports </span>are only defined in the Structure
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">Relay ports </span>are only defined in the Interface
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">End ports </span>are always connected to the internal behavior of the ActorClass
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">Replicated ports </span>can be defined with a fixed replication factor, e.g.<br
-class="newline" /><span id="textcolor45"><span
-class="ec-lmtk-10">Port</span></span> <span
-class="ec-lmtt-10">port18 [5]: ProtocolClass1</span><br
-class="newline" />or a variable replication factor, e.g.<br
-class="newline" /><span id="textcolor46"><span
-class="ec-lmtk-10">Port</span></span> <span
-class="ec-lmtt-10">port18[*]: ProtocolClass1</span></li></ul>
-<!--l. 236--><p class="noindent" >The table <a
-href="#x28-122001r3">5.3<!--tex4ht:ref: tab:class_port_notation --></a> shows all kinds of class ports with textual and graphical notation.
+<!--l. 16--><div class="lstinputlisting">
<a
- id="x28-122001r3"></a>
-</p>
-<!--l. 240--><div class="longtable"> <table id="TBL-5" class="longtable"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-5-1g"><col
-id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col
-id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col
-id="TBL-5-3" /></colgroup>
-
-
-<tr
- style="vertical-align:baseline;" id="TBL-5-1-"><td colspan="3" style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-1-1"
-class="td11"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"> <div class="caption"
-><span class="id">Table&#x00A0;5.3: </span><span
-class="content">Class Port Notation</span></div><!--tex4ht:label?: x28-122001r3 --> </div> <a
- id="x28-122002"></a>
-</td></tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-1"
-class="td11">
- <!--l. 243--><p class="noindent" ><span
-class="ec-lmssbx-10">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-3"
-class="td11">
- <!--l. 243--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-1"
-class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2"
-class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-3"
-class="td11">
-</td></tr>
-<tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-1"
-class="td11">
- <!--l. 246--><p class="noindent" >Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2"
-class="td11"> <img
-src="images/040-ClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-3"
-class="td11">
- <div class="tabular"> <table id="TBL-6" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-6-1g"><col
-id="TBL-6-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
-class="td11"><span
-class="ec-lmsso-10">External Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
-class="td11"><!--l. 250--> <!--l. 250--><p class="noindent" ><a
- id="x28-122003r1"></a><a
- id="x28-122004"></a><div class="lstlisting" id="listing-36"><span class="label"><a
- id="x28-122005r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+ id="x29-177001"></a>
+<span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122006r2"></a></span><span
+ id="x29-177002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">annotations</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122007r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port12</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+ id="x29-177003r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122008r4"></a></span><span
+ id="x29-177004r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122009r5"></a></span><span
+class="ec-lmssbx-10x-x-90">AnnotationType</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">BehaviorManual</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122010r6"></a></span><span
+ id="x29-177005r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmssbx-10x-x-90">target</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port12</span><span
+class="ec-lmssbx-10x-x-90">ActorBehavior</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122011r7"></a></span><span
+ id="x29-177006r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122012r8"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
-class="td11"><span
-class="ec-lmsso-10">Internal Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
-class="td11"><!--l. 263--> <!--l. 263--><p class="noindent" ><a
- id="x28-122013r2"></a><a
- id="x28-122014"></a><div class="lstlisting" id="listing-37"><span class="label"><a
- id="x28-122015r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122016r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+ id="x29-177007r6"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122017r3"></a></span><span
+ id="x29-177008r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122018r4"></a></span><span
+class="ec-lmssbx-10x-x-90">AnnotationType</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">ActorBaseClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122019r5"></a></span><span
+ id="x29-177009r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">target</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port20</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122020r6"></a></span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122021r7"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-1"
-class="td11">
- <!--l. 276--><p class="noindent" >Conjugated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2"
-class="td11"> <img
-src="images/040-ConjugatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-3"
-class="td11">
- <div class="tabular"> <table id="TBL-7" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-7-1g"><col
-id="TBL-7-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
-class="td11"><span
-class="ec-lmsso-10">External Conjugated Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
-class="td11"><!--l. 280--> <!--l. 280--><p class="noindent" ><a
- id="x28-122022r3"></a><a
- id="x28-122023"></a><div class="lstlisting" id="listing-38"><span class="label"><a
- id="x28-122024r1"></a></span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122025r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122026r3"></a></span><span
+ id="x29-177010r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmssbx-10x-x-90">mandatory</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">class</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122027r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122028r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmssbx-10x-x-90">ptCharacter</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122029r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+ id="x29-177011r10"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">mandatory</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port13</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122030r7"></a></span><span
+class="ec-lmssbx-10x-x-90">attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122031r8"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
-class="td11"><span
-class="ec-lmsso-10">Internal Conjugated Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
-class="td11"><!--l. 293--> <!--l. 293--><p class="noindent" ><a
- id="x28-122032r4"></a><a
- id="x28-122033"></a><div class="lstlisting" id="listing-39"><span class="label"><a
- id="x28-122034r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122035r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122036r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122037r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122038r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port21</span><span
+class="ec-lmtt-9">package</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmssbx-10x-x-90">ptCharacter</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122039r6"></a></span><span
+ id="x29-177012r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122040r7"></a></span><span
-class="ec-lmtt-9">}</span>
- </div> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-1"
-class="td11">
- <!--l. 307--><p class="noindent" >Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2"
-class="td11"> <img
-src="images/040-ClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-3"
-class="td11">
- <!--l. 309-->
- <a
- id="x28-122041r5"></a>
- <a
- id="x28-122042"></a>
- <div class="lstlisting" id="listing-40"><span class="label"><a
- id="x28-122043r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+ id="x29-177013r12"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122044r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122045r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port10</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122046r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122047r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122048r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122049r7"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 320--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-1"
-class="td11">
- <!--l. 321--><p class="noindent" >Conjugated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2"
-class="td11"> <img
-src="images/040-ConjugatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-3"
-class="td11">
- <!--l. 323-->
- <a
- id="x28-122050r6"></a>
- <a
- id="x28-122051"></a>
- <div class="lstlisting" id="listing-41"><span class="label"><a
- id="x28-122052r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122053r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122054r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port10</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122055r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122056r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122057r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122058r7"></a></span><span
+ id="x29-177014r13"></a></span><span
class="ec-lmtt-9">}</span>
-
</div>
-<!--l. 334--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-1"
-class="td11">
- <!--l. 335--><p class="noindent" >Replicated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2"
-class="td11"> <img
-src="images/040-ReplicatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-3"
-class="td11">
- <div class="tabular"> <table id="TBL-8" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-8-1g"><col
-id="TBL-8-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1"
-class="td11"><!--l. 338--><p class="noindent" ><span
-class="ec-lmsso-10">External Replicated Class End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1"
-class="td11"><!--l. 339-->
-<a
- id="x28-122059r7"></a>
-<a
- id="x28-122060"></a>
-<div class="lstlisting" id="listing-42"><span class="label"><a
- id="x28-122061r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122062r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122063r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122064r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122065r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122066r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122067r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122068r8"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 351--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1"
-class="td11"><!--l. 351--><p class="noindent" ><span
-class="ec-lmsso-10">Internal Replicated Class End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1"
-class="td11"><!--l. 352-->
-<a
- id="x28-122069r8"></a>
-<a
- id="x28-122070"></a>
-<div class="lstlisting" id="listing-43"><span class="label"><a
- id="x28-122071r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122072r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122073r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122074r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122075r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122076r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122077r7"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 363--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-1"
-class="td11">
- <!--l. 366--><p class="noindent" >Conjugated
- Replicated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-3"
-class="td11">
- <div class="tabular"> <table id="TBL-9" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-9-1g"><col
-id="TBL-9-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1"
-class="td11"><!--l. 369--><p class="noindent" ><span
-class="ec-lmsso-10">External Conjugated Replicated Class</span>
-<span
-class="ec-lmsso-10">End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1"
-class="td11"><!--l. 370-->
-<a
- id="x28-122078r9"></a>
-<a
- id="x28-122079"></a>
-<div class="lstlisting" id="listing-44"><span class="label"><a
- id="x28-122080r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122081r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122082r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port17</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122083r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122084r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122085r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port17</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122086r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122087r8"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 382--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1"
-class="td11"><!--l. 382--><p class="noindent" ><span
-class="ec-lmsso-10">Internal Conjugated Replicated Class</span>
-<span
-class="ec-lmsso-10">End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1"
-class="td11"><!--l. 383-->
-<a
- id="x28-122088r10"></a>
+<!--l. 18--><p class="noindent" >Here we find two definitions. The meaning of those annotations will be explained later in section <a
+href="#x29-1780002">6.4.2<!--tex4ht:ref: sec:predef_annotations --></a> about "<a
+href="#x29-1780002">Usage and
+Effect of the Pre-defined Annotations<!--tex4ht:ref: sec:predef_annotations --></a>".
+</p><!--l. 21--><p class="noindent" >The annotation type definition defines a target where the annotation is allowed to be used. This can be one
+of
+</p>
+ <ul class="itemize1">
+ <li class="itemize">DataClass
+ </li>
+ <li class="itemize">ActorClass
+ </li>
+ <li class="itemize">ActorBehavior
+ </li>
+ <li class="itemize">ProtocolClass
+ </li>
+ <li class="itemize">CompoundProtocolClass
+ </li>
+ <li class="itemize">SubSystemClass
+ </li>
+ <li class="itemize">LogicalSystem</li></ul>
+<!--l. 34--><p class="noindent" >Attributes can be added as needed and qualified as mandatory or optional. Attributes have a type (similar as the
+PrimitiveType but with the understanding that ptChar is a string). Another attribute type is enum with an explicit list of
+allowed enum literals.
<a
- id="x28-122089"></a>
-<div class="lstlisting" id="listing-45"><span class="label"><a
- id="x28-122090r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122091r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122092r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122093r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122094r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port23</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122095r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122096r7"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 394--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-1"
-class="td11">
- <!--l. 397--><p class="noindent" >Replicated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-10-2"
-class="td11"> <img
-src="images/040-ReplicatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-3"
-class="td11">
- <!--l. 399-->
- <a
- id="x28-122097r11"></a>
- <a
- id="x28-122098"></a>
- <div class="lstlisting" id="listing-46"><span class="label"><a
- id="x28-122099r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122100r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122101r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port18</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122102r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122103r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122104r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122105r7"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 409--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-1"
-class="td11">
- <!--l. 410--><p class="noindent" >Conjugated
- Replicated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-11-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-3"
-class="td11">
- <!--l. 412-->
- <a
- id="x28-122106r12"></a>
- <a
- id="x28-122107"></a>
- <div class="lstlisting" id="listing-47"><span class="label"><a
- id="x28-122108r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122109r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122110r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port19</span><span
-class="ec-lmtt-9">[3]:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122111r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122112r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122113r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x28-122114r7"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 423--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-12-1"
-class="td11"> </td>
+ id="x29-177015r243"></a>
+</p>
+
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-13-1"
-class="td11"> </td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-14-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-15-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-15-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-16-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-16-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr>
-</table></div>
+<h4 class="subsectionHead"><span class="titlemark">6.4.2 </span> <a
+ id="x29-1780002"></a>Usage and Effect of the Pre-defined Annotations</h4>
+<!--l. 42--><p class="noindent" >The eTrice generators currently implement two annotations.
<a
- id="Q1-28-166"></a>
+ id="Q1-29-246"></a>
+</p>
<h5 class="likesubsubsectionHead"><a
- id="x28-1230003"></a>Reference Ports</h5>
-<!--l. 429--><p class="noindent" >These symbols can only appear on the border of an actor class. Since the type of port is defined in the actor class, no textual
-notation for the Reference Ports exists.
-</p><!--l. 432--><p class="noindent" >The table <a
-href="#x28-123001r4">5.4<!--tex4ht:ref: tab:reference_port_notation --></a> shows all kinds of reference ports with textual and graphical notation.
+ id="x29-1790002"></a>BehaviorManual</h5>
+<!--l. 46--><p class="noindent" >This annotation has no attribute. If specified the code generator won&#8217;t generate a state machine but part of the interface and
+methods of an actor class.
+</p><!--l. 49--><p class="noindent" ><span
+class="ec-lmssbx-10">Java</span>
+</p><!--l. 51--><p class="noindent" >An abstract base class <span
+class="ec-lmtt-10">Abstract&#x003C;ActorClassName&#x003E; </span>is generated which contains ports, SAPs and attributes as members.
+The <span
+class="ec-lmtt-10">receiveEvent() </span>method is dispatching to distinct methods per pair of interface item (port or SAP) and message
+coming in from this interface item. The user has to sub class the abstract base class and may override the generated methods
+as needed.
+</p><!--l. 56--><p class="noindent" ><span
+class="ec-lmssbx-10">C</span>
+</p><!--l. 58--><p class="noindent" >The generator is only generating a public header file and is leaving its implementation to the user.
+<a
+ id="Q1-29-248"></a>
</p>
-<div class="table">
-
-
-<!--l. 435--><p class="noindent" ><a
- id="x28-123001r4"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;5.4: </span><span
-class="content">Reference Port Notation</span></div><!--tex4ht:label?: x28-123001r4 -->
-<div class="tabular"> <table id="TBL-10" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-10-1g"><col
-id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col
-id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col
-id="TBL-10-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3"
-class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1"
-class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2"
-class="td11"> <img
-src="images/040-ReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1"
-class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2"
-class="td11"> <img
-src="images/040-ConjugatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1"
-class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2"
-class="td11"> <img
-src="images/040-ReplicatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1"
-class="td11"> Conjugated Replicated </td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1"
-class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
-</div>
+<h5 class="likesubsubsectionHead"><a
+ id="x29-1800002"></a>ActorBaseClass</h5>
+<!--l. 62--><p class="noindent" >This annotation is defined for Java only. It tells the generator that the generated actor class should inherit from the specified
+base class (mandatory string parameters class and package).
+</p><!--l. 65--><p class="noindent" >If the actor class is modeled as having another actor base class then the annotation has no effect.
-<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
+</p>
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse22.html" >next</a>] [<a
href="etrice-docse20.html" >prev</a>] [<a
href="etrice-docse20.html#tailetrice-docse20.html" >prev-tail</a>] [<a
href="etrice-docse21.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse21.html" >up</a>] </p></div>
-<!--l. 450--><p class="noindent" ><a
+href="etrice-docch6.html#etrice-docse21.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse21.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html
index 6eec100be..ceb3b2aeb 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html
@@ -4,409 +4,490 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>DataClass</title>
+<head><title>Enumerations</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse23.html" >next</a>] [<a
href="etrice-docse21.html" >prev</a>] [<a
href="etrice-docse21.html#tailetrice-docse21.html" >prev-tail</a>] [<a
href="#tailetrice-docse22.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse22.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.4 </span> <a
- id="x29-1240004"></a>DataClass</h3>
+href="etrice-docch6.html#etrice-docse22.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.5 </span> <a
+ id="x30-1810005"></a>Enumerations</h3>
+<!--l. 3--><p class="noindent" >Another top level type that eTrice introduces is the <span
+class="ec-lmtt-10">Enumeration</span>. Enumerations are well known from many programming
+languages. They basically are a lists of literals, each of which is a pair consisting of a name and an integer
+constant.
+</p><!--l. 7--><p class="noindent" >The assignment of integer constants is optional in eTrice. If no value is specified then the value is that of the predecessor plus
+one or 0 if there is no predecessor.
+</p><!--l. 10--><p class="noindent" >The default type of the enumeration is an <span
+class="ec-lmtt-10">int </span>and depends on the target platform. But it is also possible to explicitly
+associate a <span
+class="ec-lmtt-10">PrimitiveType </span>(of integer type of course) with the enumeration.
+</p><!--l. 14--><p class="noindent" >In the following listing we show a couple of examples for enumerations.
+</p>
+<!--l. 16--><div class="lstinputlisting">
<a
- id="x29-124001r150"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.4.1 </span> <a
- id="x29-1250001"></a>Description</h4>
-<!--l. 454--><p class="noindent" >The <span id="textcolor47"><span
-class="ec-lmssbx-10">DataClass</span></span> enables the modeling of hierarchical complex data types and operations on them. The data class is the
-equivalent to a class in languages like Java or C++, but has less features. The content of a data class can always be sent via
-message between actors (defined as message data in a <span id="textcolor48"><span
-class="ec-lmssbx-10">ProtocolClass</span></span>).
+ id="x30-181001r2"></a>
<a
- id="x29-125001r170"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">5.4.2 </span> <a
- id="x29-1260002"></a>Notation</h4>
-<!--l. 460--><p class="noindent" >Example: DataClass using PrimitiveTypes
-</p>
-<!--l. 462-->
-<div class="lstlisting" id="listing-48"><span class="label"><a
- id="x29-126001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">DataClass</span><span
+ id="x30-181002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">EnumExample</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126002r2"></a></span><span
+ id="x30-181004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181005r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmssbx-10x-x-90">PrimitiveType</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">int16</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
+class="ec-lmssbx-10x-x-90">ptInteger</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">short</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Short</span><span
+class="ec-lmtt-9">)</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmssbx-10x-x-90">default</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126003r3"></a></span><span
+ id="x30-181006r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmssbx-10x-x-90">PrimitiveType</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">char</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float32</span><span
+class="ec-lmssbx-10x-x-90">ptCharacter</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">char</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Char</span><span
+class="ec-lmtt-9">)</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmssbx-10x-x-90">default</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">another</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181008r6"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126004r4"></a></span><span
+class="ec-lmtt-9">FirstEnum</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126005r5"></a></span><span
+ id="x30-181009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">zero</span><span
class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">one</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126006r6"></a></span><span
+ id="x30-181011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">two</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">2</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126007r7"></a></span><span
+ id="x30-181012r10"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">three</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">3</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126008r8"></a></span><span
+ id="x30-181013r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126009r9"></a></span><span
+ id="x30-181014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181015r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">SecondEnum</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181016r14"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">one</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126010r10"></a></span><span
+class="ec-lmtt-9">1,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181017r15"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">two</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">2</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126011r11"></a></span><span
+ id="x30-181018r16"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">three</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">3</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126012r12"></a></span><span
+ id="x30-181019r17"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126013r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+ id="x30-181020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181021r19"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">ThirdEnum</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181022r20"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">one</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">1,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126014r14"></a></span><span
+ id="x30-181023r21"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float64</span><span
+class="ec-lmtt-9">two</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">2</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126015r15"></a></span><span
+ id="x30-181024r22"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">five</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">5</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">5</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126016r16"></a></span><span
+ id="x30-181025r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126017r17"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 483--><p class="noindent" >Example: DataClass using other DataClasses:
-</p>
-<!--l. 485-->
-<div class="lstlisting" id="listing-49"><span class="label"><a
- id="x29-126018r1"></a></span><span
-class="ec-lmssbx-10x-x-90">DataClass</span><span
+ id="x30-181026r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181027r25"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass2</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">FourthEnum</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126019r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
+ id="x30-181028r26"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">one</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1,</span><span
class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181029r27"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">three</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">3,</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">3</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126020r3"></a></span><span
+ id="x30-181030r28"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">sixtyfive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x41</span><span
class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x41</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">or</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">65</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126021r4"></a></span><span
+ id="x30-181031r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126022r5"></a></span><span
+ id="x30-181032r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181033r31"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">FifthEnum</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
+class="ec-lmssbx-10x-x-90">of</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">int16</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181034r32"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">f1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x1</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126023r6"></a></span><span
+ id="x30-181035r33"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">f2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x2</span><span
class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x2</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">or</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181036r34"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">f3</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x4</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x4</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">4</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126024r7"></a></span><span
+ id="x30-181037r35"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">f4</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x8</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">x8</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">8</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126025r8"></a></span><span
+ id="x30-181038r36"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126026r9"></a></span><span
+ id="x30-181039r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181040r38"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">WrongType</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
+class="ec-lmssbx-10x-x-90">of</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">char</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">/*</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x003C;-</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">ERROR</span><span
+class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">except</span><span
+class="ec-lmtt-9">no</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">integer</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">primitive</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">types</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126027r10"></a></span><span
+class="ec-lmtt-9">type</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">*/</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181041r39"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181042r40"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181043r41"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181044r42"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">EmptyEnum</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126028r11"></a></span><span
+ id="x30-181045r43"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ERROR</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">literals</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">defined</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126029r12"></a></span><span
+ id="x30-181046r44"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x29-126030r13"></a></span><span
+ id="x30-181047r45"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x30-181048r46"></a></span><span
class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.2:
+ </span><span
+class="content">ROOM
+ example
+ code</span></div><!--tex4ht:label?: x30-1810006 -->
</div>
-<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse23.html" >next</a>] [<a
href="etrice-docse21.html" >prev</a>] [<a
href="etrice-docse21.html#tailetrice-docse21.html" >prev-tail</a>] [<a
href="etrice-docse22.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse22.html" >up</a>] </p></div>
-<!--l. 502--><p class="noindent" ><a
+href="etrice-docch6.html#etrice-docse22.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse22.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html
index ca5b6a39f..ea6a7b399 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html
@@ -4,496 +4,1379 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Layering</title>
+<head><title>eTrice Models and Their Relations</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse24.html" >next</a>] [<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch7.html" >next</a>] [<a
href="etrice-docse22.html" >prev</a>] [<a
href="etrice-docse22.html#tailetrice-docse22.html" >prev-tail</a>] [<a
href="#tailetrice-docse23.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse23.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.5 </span> <a
- id="x30-1270005"></a>Layering</h3>
-<a
- id="x30-127001r171"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.5.1 </span> <a
- id="x30-1280001"></a>Description</h4>
-<!--l. 506--><p class="noindent" >In addition to the actor containment hierarchies, layering provides another method to hierarchically structure a
-software system. Layering and actor hierarchies with port to port connections can be mixed on every level of
-granularity.
- </p><ol class="enumerate1" >
- <li
- class="enumerate" id="x30-128002x1">an actor class can define a Service Provision Point (<span id="textcolor49"><span
-class="ec-lmssbx-10">SPP</span></span>) to publish a specific service, defined by a protocol
- class
+href="etrice-docch6.html#etrice-docse23.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">6.6 </span> <a
+ id="x31-1820006"></a>eTrice Models and Their Relations</h3>
+<!--l. 3--><p class="noindent" >eTrice comprises several models:
+</p>
+ <ul class="itemize1">
+ <li class="itemize">the ROOM model (*.room) &#8211; defines model classes and the logical structure of the model
+ </li>
+ <li class="itemize">the Config model (*.config) &#8211; defines configuration values for attributes
</li>
- <li
- class="enumerate" id="x30-128004x2">an actor class can define a Service Access Point (<span id="textcolor50"><span
-class="ec-lmssbx-10">SAP</span></span>) if it needs a service, defined by a protocol class
+ <li class="itemize">the Physical model (*.etphys) &#8211; defines the structure and properties of the physical system
</li>
- <li
- class="enumerate" id="x30-128006x3">for a given actor hierarchy, a <span id="textcolor51"><span
-class="ec-lmssbx-10">LayerConnection</span></span> defines which SAP will be satisfied by (connected to) which
- SPP</li></ol>
+ <li class="itemize">the Mapping model (*.etmap) &#8211; defines a mapping from logical elements to physical elements</li></ul>
+<!--l. 12--><p class="noindent" >In the following diagram the models and their relations are depicted. The meaning of the arrows is: uses/references.
+</p><!--l. 15--><p class="noindent" ><img
+src="images/080-models.jpg" alt="PIC"
+ />
+</p><!--l. 17--><p class="noindent" >In the following sections we will describe those models with emphasis of their cross relations.
<a
- id="x30-128007r173"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.5.2 </span> <a
- id="x30-1290002"></a>Notation</h4>
-<!--l. 521--><p class="noindent" >For the graphical and textual notation refer to table <a
-href="#x30-129001r5">5.5<!--tex4ht:ref: tab:layering_notation --></a>
+ id="x31-182001r245"></a>
</p>
-<div class="table">
-
-
-<!--l. 524--><p class="noindent" ><a
- id="x30-129001r5"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;5.5: </span><span
-class="content">Layering Notation</span></div><!--tex4ht:label?: x30-129001r5 -->
-<div class="tabular"> <table id="TBL-11" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-11-1g"><col
-id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col
-id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col
-id="TBL-11-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1"
-class="td11"> <!--l. 528--><p class="noindent" ><span
-class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-3"
-class="td11"> <!--l. 528--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1"
-class="td11">
- <div class="flushleft"
->
- <!--l. 530--><p class="noindent" >
- The layer
- connections in this
- model define which
- services are provided
- by the <span
-class="ec-lmsso-10">ServiceLayer</span>
- (<span
-class="ec-lmsso-10">digitalIO </span>and
- <span
-class="ec-lmsso-10">timer</span>)</p></div>
- <!--l. 533--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2"
-class="td11"> <img
-src="images/040-LayeringModel.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-3"
-class="td11"> <!--l. 537-->
- <div class="lstlisting" id="listing-50"><span class="label"><a
- id="x30-129002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+<h4 class="subsectionHead"><span class="titlemark">6.6.1 </span> <a
+ id="x31-1830001"></a>The ROOM Model</h4>
+<!--l. 21--><p class="noindent" >The ROOM model defines <span id="textcolor52"><span
+class="ec-lmssbx-10">DataClass</span></span>es, <span id="textcolor53"><span
+class="ec-lmssbx-10">ProtocolClass</span></span>es, <span id="textcolor54"><span
+class="ec-lmssbx-10">ActorClass</span></span>es, <span id="textcolor55"><span
+class="ec-lmssbx-10">SubSystemClass</span></span>es and <span id="textcolor56"><span
+class="ec-lmssbx-10">LogicalSystem</span></span>s. Thereby
+the three latter form a hierarchy. The <span id="textcolor57"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> is the top level element of the structure. It contains references to
+<span id="textcolor58"><span
+class="ec-lmssbx-10">SubSystemClass</span></span> elements. The <span id="textcolor59"><span
+class="ec-lmssbx-10">SubSystemClass</span></span> in turn contains references to <span id="textcolor60"><span
+class="ec-lmssbx-10">ActorClass</span></span> elements which again
+contain (recursively) references to <span id="textcolor61"><span
+class="ec-lmssbx-10">ActorClass</span></span> elements. The complete structural hierarchy implies a tree
+which has the <span id="textcolor62"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> as root and where each reference stands for a new node with possibly further
+branches.
+</p><!--l. 29--><p class="noindent" >Let&#8217;s consider a simple example. It doesn&#8217;t implement anything meaningful and completely omits behavioral and other
+aspects.
+</p>
+<!--l. 32--><div class="lstinputlisting">
+<a
+ id="x31-183001r3"></a>
+<a
+ id="x31-183002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Mode1</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129003r2"></a></span><span
+ id="x31-183004r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubA</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subB</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129004r3"></a></span><span
+ id="x31-183010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">actA</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">ActA</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129005r4"></a></span><span
+ id="x31-183011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">actB</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183012r10"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129006r5"></a></span><span
+ id="x31-183013r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183014r12"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timer</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129007r6"></a></span><span
+ id="x31-183015r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129008r7"></a></span><span
+ id="x31-183016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actC1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129009r8"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 548--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1"
-class="td11">
- <div class="flushleft"
->
- <!--l. 549--><p class="noindent" >
- The
- implementation of
- the services (SPPs)
- can be delegated to
- sub actors. In this
- case the actor
- <span
-class="ec-lmsso-10">ServiceLayer </span>relays
- (delegates) the
- implementation
- services <span
-class="ec-lmsso-10">digitalIO</span>
- and <span
-class="ec-lmsso-10">timer </span>to sub
- actors</p></div>
- <!--l. 553--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2"
-class="td11"> <img
-src="images/040-LayeringServiceLayer.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-3"
-class="td11"> <!--l. 556-->
- <div class="lstlisting" id="listing-51"><span class="label"><a
- id="x30-129010r1"></a></span><span
+ id="x31-183018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActA</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183023r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actB</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183025r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183026r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183027r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183028r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183029r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183030r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">ActA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129011r2"></a></span><span
+ id="x31-183031r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129012r3"></a></span><span
+ id="x31-183032r30"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SPP</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timer</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">int</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129013r4"></a></span><span
+ id="x31-183033r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SPP</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">actB1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129014r5"></a></span><span
+ id="x31-183034r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actB2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183035r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129015r6"></a></span><span
+ id="x31-183036r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183037r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183038r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183039r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129016r7"></a></span><span
+ id="x31-183040r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183041r39"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Timer</span><span
+class="ec-lmtt-9">actC1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerService</span><span
+class="ec-lmtt-9">ActC</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129017r8"></a></span><span
+ id="x31-183042r40"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">actC2</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DifitalIOService</span><span
+class="ec-lmtt-9">ActC</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129018r9"></a></span><span
+ id="x31-183043r41"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183044r42"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183045r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183046r44"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timer</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">ActC</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Timer</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">{}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183047r45"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129019r10"></a></span><span
+ id="x31-183048r46"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">PrimitiveType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ptInteger</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Integer</span><span
+class="ec-lmtt-9">)</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">default</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-183049r47"></a></span><span
+class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.3:
+ </span><span
+class="content">ROOM
+ example
+ code</span></div><!--tex4ht:label?: x31-1830006 -->
+</div>
+<!--l. 34--><p class="noindent" >When a <span id="textcolor63"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> is instantiated then recursively all of the contained referenced elements are instantiated as instances
+of the corresponding class. Thus the instance tree of the above example looks like in figure <a
+href="#x31-183050r5">6.5<!--tex4ht:ref: fig:instance_tree --></a> (the third line in the white
+boxes shows some mapping information, see section <a
+href="#x31-1860004">6.6.4<!--tex4ht:ref: sec:mapping_model --></a> <a
+href="#x31-1860004">The Mapping Model<!--tex4ht:ref: sec:mapping_model --></a>):
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x31-183050r5"></a><a
+ id="x31-18400025"></a><a
+ id="x31-18500011"></a><a
+ id="x31-18500046"></a><a
+ id="x31-18600017"></a>
+
+
+<!--l. 40--><p class="noindent" ><img
+src="images/080-instances.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;6.5: </span><span
+class="content">Instances of a ROOM system</span></div><!--tex4ht:label?: x31-183050r5 -->
+
+
+</div><hr class="endfigure" />
+<a
+ id="x31-183051r253"></a>
+<h4 class="subsectionHead"><span class="titlemark">6.6.2 </span> <a
+ id="x31-1840002"></a>The Config Model</h4>
+<!--l. 47--><p class="noindent" >Once we have the ROOM class model we can configure values using the Config model. This can be done on the class level
+and/or on the instance level. Values defined for class attributes are used for all instances unless there is an instance value
+configured for the same attribute.
+</p>
+<!--l. 51--><div class="lstinputlisting">
+<a
+ id="x31-184001r4"></a>
+<a
+ id="x31-184002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ConfigModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184005r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActA</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">12</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">13</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184023r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-184024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">14</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129020r11"></a></span><span
+ id="x31-184025r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129021r12"></a></span><span
+ id="x31-184026r24"></a></span><span
class="ec-lmtt-9">}</span>
-
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.4:
+ </span><span
+class="content">Config
+ example
+ code</span></div><!--tex4ht:label?: x31-1840006 -->
</div>
-<!--l. 571--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1"
-class="td11">
- <div class="flushleft"
->
- <!--l. 572--><p class="noindent" >
- Every Actor inside
- the
- <span
-class="ec-lmsso-10">ApplicationLayer</span>
- that contains an
- SAP with the same
- protocol as <span
-class="ec-lmsso-10">timer </span>or
- <span
-class="ec-lmsso-10">digitalIO </span>will be
- connected to the
- specified SPP</p></div>
- <!--l. 575--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2"
-class="td11"> <img
-src="images/040-LayeringApplicationLayer.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-3"
-class="td11"> <!--l. 578-->
- <div class="lstlisting" id="listing-52"><span class="label"><a
- id="x30-129022r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+<a
+ id="x31-184027r256"></a>
+<h4 class="subsectionHead"><span class="titlemark">6.6.3 </span> <a
+ id="x31-1850003"></a>The Physical Model</h4>
+<!--l. 55--><p class="noindent" >The physical model defines the physical resources onto which the logical system will be deployed. It is possible to define
+runtime classes which (currently) only define the overall execution model of the platform.
+</p>
+<!--l. 59--><div class="lstinputlisting">
+<a
+ id="x31-185001r5"></a>
+<a
+ id="x31-185002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">PhysicalModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">runtimes</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129023r2"></a></span><span
+ id="x31-185004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185005r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">RuntimeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PCRuntime</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129024r3"></a></span><span
+ id="x31-185006r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmssbx-10x-x-90">model</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function1</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">A</span><span
+class="ec-lmssbx-10x-x-90">multiThreaded</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129025r4"></a></span><span
+ id="x31-185007r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">RuntimeClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">MSP430Runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">singleThreaded</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185012r10"></a></span><span
+class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.5:
+ </span><span
+class="content">etPhys
+ runtime
+ definition</span></div><!--tex4ht:label?: x31-1850006 -->
+</div>
+<!--l. 61--><p class="noindent" >The <span id="textcolor64"><span
+class="ec-lmssbx-10">PhysicalSystem</span></span> is composed of <span id="textcolor65"><span
+class="ec-lmssbx-10">NodeRef</span></span>erences which are instances of <span id="textcolor66"><span
+class="ec-lmssbx-10">NodeClass</span></span>es. Each <span id="textcolor67"><span
+class="ec-lmssbx-10">NodeClass</span></span> is referencing
+a <span id="textcolor68"><span
+class="ec-lmssbx-10">RuntimeClass</span></span> and is defining <span id="textcolor69"><span
+class="ec-lmssbx-10">Threads</span></span>.
+</p>
+<!--l. 65--><div class="lstinputlisting">
+<a
+ id="x31-185013r6"></a>
+<a
+ id="x31-185014"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185015r1"></a></span><span
+class="ec-lmssbx-10x-x-90">PhysicalModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185016r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185017r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function2</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185018r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185019r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">PhysicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MainPhys</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185020r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pc1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">B</span><span
+class="ec-lmtt-9">PC_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129026r5"></a></span><span
+ id="x31-185021r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function3</span><span
+class="ec-lmtt-9">pc2</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">PC_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129027r6"></a></span><span
+ id="x31-185022r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function4</span><span
+class="ec-lmtt-9">mc</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">D</span><span
+class="ec-lmtt-9">MSP430_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129028r7"></a></span><span
+ id="x31-185023r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129029r8"></a></span><span
-class="ec-lmtt-9">}</span><span
+ id="x31-185024r10"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129030r9"></a></span><span
+ id="x31-185025r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PC_Node</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129031r10"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x31-185026r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">PCRuntime</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185027r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomin</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185028r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomax</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">A</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185029r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DefaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129032r11"></a></span><span
+ id="x31-185030r16"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">blocked</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185031r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185032r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185033r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185034r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">50</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185035r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185036r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Thread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread2</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129033r12"></a></span><span
+ id="x31-185037r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timerSAP</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185038r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">interval</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ms</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185039r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185040r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129034r13"></a></span><span
+ id="x31-185041r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185042r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">50</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185043r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129035r14"></a></span><span
+ id="x31-185044r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129036r15"></a></span><span
+ id="x31-185045r31"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129037r16"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x31-185046r32"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">B</span><span
+class="ec-lmssbx-10x-x-90">NodeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MSP430_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129038r17"></a></span><span
+ id="x31-185047r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">MSP430Runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185048r34"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomin</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185049r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomax</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185050r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DefaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129039r18"></a></span><span
+ id="x31-185051r37"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timerSAP</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129040r19"></a></span><span
+ id="x31-185052r38"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalSAP</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmssbx-10x-x-90">interval</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">us</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185053r39"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185054r40"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">256</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185055r41"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129041r20"></a></span><span
+ id="x31-185056r42"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">50</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185057r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x30-129042r21"></a></span><span
+ id="x31-185058r44"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-185059r45"></a></span><span
class="ec-lmtt-9">}</span>
-
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.6:
+ </span><span
+class="content">etPhys
+ example
+ code</span></div><!--tex4ht:label?: x31-1850006 -->
</div>
-<!--l. 602--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1"
-class="td11"> </td></tr></table></div>
+<a
+ id="x31-185060r258"></a>
-</div><hr class="endfloat" />
+<h4 class="subsectionHead"><span class="titlemark">6.6.4 </span> <a
+ id="x31-1860004"></a>The Mapping Model</h4>
+<!--l. 70--><p class="noindent" >The last model finally combines all this information by mapping logical to physical entities.
+</p>
+<!--l. 72--><div class="lstinputlisting">
+<a
+ id="x31-186001r7"></a>
+<a
+ id="x31-186002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">MappingModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Mapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MainPhys</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pc1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">mc</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x31-186018r16"></a></span><span
+class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;6.7:
+ </span><span
+class="content">etMap
+ example
+ code</span></div><!--tex4ht:label?: x31-1860006 -->
</div>
+<!--l. 74--><p class="noindent" >The result of the mapping is also depicted in above tree diagram (figure <a
+href="#x31-183050r5">6.5<!--tex4ht:ref: fig:instance_tree --></a>) of the instances. All actor instances (the white
+boxes) are mapped to a node and a thread running on this node (shown as @<span
+class="ec-lmsso-10">node </span>: <span
+class="ec-lmsso-10">thread</span>).
-<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse24.html" >next</a>] [<a
+</p>
+<!--l. 121--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch7.html" >next</a>] [<a
href="etrice-docse22.html" >prev</a>] [<a
href="etrice-docse22.html#tailetrice-docse22.html" >prev-tail</a>] [<a
href="etrice-docse23.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse23.html" >up</a>] </p></div>
-<!--l. 606--><p class="noindent" ><a
+href="etrice-docch6.html#etrice-docse23.html" >up</a>] </p></div>
+<!--l. 121--><p class="noindent" ><a
id="tailetrice-docse23.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html
index 4aad6e1e4..363a4d2e7 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html
@@ -4,463 +4,8295 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Finite State Machines</title>
+<head><title>ROOMLanguage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:08:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch6.html" >next</a>] [<a
-href="etrice-docse23.html" >prev</a>] [<a
-href="etrice-docse23.html#tailetrice-docse23.html" >prev-tail</a>] [<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse25.html" >next</a>] [<a
+href="etrice-docch7.html" >prev</a>] [<a
+href="etrice-docch7.html#tailetrice-docch7.html" >prev-tail</a>] [<a
href="#tailetrice-docse24.html">tail</a>] [<a
-href="etrice-docch5.html#etrice-docse24.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">5.6 </span> <a
- id="x31-1300006"></a>Finite State Machines</h3>
-<a
- id="x31-130001r174"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.6.1 </span> <a
- id="x31-1310001"></a>Description</h4>
-<!--l. 610--><p class="noindent" >Definition from <a
-href="http://en.wikipedia.org/wiki/Finite-state_machine" >Wikipedia</a>:
- </p><div class="quote">
- <!--l. 613--><p class="noindent" >A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine,
- is a mathematical model used to design computer programs and digital logic circuits. It is conceived as
- an abstract machine that can be in one of a finite number of states. The machine is in only one state at
- a time; the state it is in at any given time is called the current state. It can change from one state to
- another when initiated by a triggering event or condition, this is called a transition. A particular FSM is
- defined by a list of the possible states it can transition to from each state, and the triggering condition
- for each transition.
- </p><!--l. 621--><p class="noindent" >In ROOM each actor class can implement its behavior using a state machine. Events occurring at the
- end ports of an actor will be forwarded to and processed by the state machine. Events possibly trigger
- state transitions.</p></div>
-<a
- id="x31-131001r177"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.6.2 </span> <a
- id="x31-1320002"></a>Motivation</h4>
-<!--l. 628--><p class="noindent" >For event driven systems a finite state machine is ideal for processing the stream of events. Typically during processing new
-events are produced which are sent to peer actors.
-</p><!--l. 631--><p class="noindent" >We distinguish flat and hierarchical state machines.
-<a
- id="x31-132001r178"></a>
+href="etrice-docch7.html#etrice-docse24.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">7.1 </span> <a
+ id="x33-1880001"></a>ROOMLanguage</h3>
+<!--l. 2--><p class="noindent" ><a
+ id="ref:ROOMLanguage"></a> The Real Time Object Oriented Modeling (ROOM).
+</p><!--l. 5--><p class="noindent" >eTrice comprises several models:
</p>
-<h4 class="subsectionHead"><span class="titlemark">5.6.3 </span> <a
- id="x31-1330003"></a>Notation</h4>
-<!--l. 635--><p class="noindent" >We distinguish flat finite state machines (with just one level of hierarchy) and hierarchical ones.
-<a
- id="Q1-31-180"></a>
-</p>
-<h5 class="likesubsubsectionHead"><a
- id="x31-1340003"></a>Flat Finite State Machine</h5>
-<!--l. 639--><p class="noindent" >The simpler flat finite state machines are composed of the elements shown in table <a
-href="#x31-134001r6">5.6<!--tex4ht:ref: tab:flat_fsm_notation --></a>.
+ <ul class="itemize1">
+ <li class="itemize">the ROOM model (*.room) &#8211; defines model classes and the logical structure of the model
+ </li>
+ <li class="itemize">the Config model (*.config) &#8211; defines configuration values for attributes
+ </li>
+ <li class="itemize">the Physical model (*.etphys) &#8211; defines the structure and properties of the physical system
+ </li>
+ <li class="itemize">the Mapping model (*.etmap) &#8211; defines a mapping from logical elements to physical elements</li></ul>
+<!--l. 14--><p class="noindent" >In the following diagram the models and their relations are depicted. The meaning of the arrows is: uses/references.
</p>
-<div class="table">
-
-
-<!--l. 642--><p class="noindent" ><a
- id="x31-134001r6"></a></p><hr class="float" /><div class="float"
+<div class="center"
>
+<!--l. 15--><p class="noindent" >
+
+</p><!--l. 16--><p class="noindent" ><img
+src="images/080-models.jpg" alt="PIC"
+ /></p></div>
+<!--l. 20--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-188001r1"></a></p>
+<!--l. 25--><div class="longtable"> <table id="TBL-17" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-17-1g"><col
+id="TBL-17-1" /></colgroup><colgroup id="TBL-17-2g"><col
+id="TBL-17-2" /><col
+id="TBL-17-3" /></colgroup>
- <div class="caption"
-><span class="id">Table&#x00A0;5.6: </span><span
-class="content">Flat finite state machine notation</span></div><!--tex4ht:label?: x31-134001r6 -->
-<div class="tabular"> <table id="TBL-12" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-12-1g"><col
-id="TBL-12-1" /></colgroup><colgroup id="TBL-12-2g"><col
-id="TBL-12-2" /></colgroup><colgroup id="TBL-12-3g"><col
-id="TBL-12-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-1"
-class="td11"> <!--l. 646--><p class="noindent" ><span
-class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-3"
-class="td11"> <!--l. 646--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-1"
-class="td11"> <!--l. 648--><p class="noindent" >State </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-2"
-class="td11"> <img
-src="images/040-State.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-3"
-class="td11"> <!--l. 649-->
- <div class="lstlisting" id="listing-53"><span class="label"><a
- id="x31-134002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SomeState</span>
-
-</div>
-<!--l. 654--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-1"
-class="td11"> <!--l. 655--><p class="noindent" >InitialPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-2"
-class="td11"> <img
-src="images/040-InitialPoint.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-3"
-class="td11"> <!--l. 655--><p class="noindent" ><span
-class="ec-lmsso-10">implicit</span> </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-1"
-class="td11"> <!--l. 657--><p class="noindent" >TransitionPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-2"
-class="td11"> <img
-src="images/040-TransitionPoint.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-3"
-class="td11"> <!--l. 658-->
- <div class="lstlisting" id="listing-54"><span class="label"><a
- id="x31-134003r1"></a></span><span
-class="ec-lmssbx-10x-x-90">TransitionPoint</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tp</span>
-
-</div>
-<!--l. 663--><p class="noindent" > </p></td>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-17-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-1-3"
+class="td11">
+ <!--l. 25--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-17-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:PhysicalModel">PhysicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-2-3"
+class="td11">
+ <!--l. 26--><p class="noindent" >The PhysicalModel defines the setup of your nodes with
+ their attributes like threads and mode of execution. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-17-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MappingModel">MappingModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-3-3"
+class="td11">
+ <!--l. 27--><p class="noindent" >The MappingModel describes the mapping of elements of
+ the LogicalModel to elements of the PhysicalModel. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-17-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ConfigModel">ConfigModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-4-3"
+class="td11">
+ <!--l. 28--><p class="noindent" >The ConfigModel describes the Attribute configuration of
+ ActorInstances and PortInstances. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-1"
-class="td11"> <!--l. 664--><p class="noindent" >ChoicePoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-2"
-class="td11"> <img
-src="images/040-ChoicePoint.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-3"
-class="td11"> <!--l. 665-->
- <div class="lstlisting" id="listing-55"><span class="label"><a
- id="x31-134004r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ChoicePoint</span><span
+ style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-17-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-17-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-188002r261"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.1.1 </span> <a
+ id="x33-1890001"></a>ConfigModel</h4>
+<!--l. 34--><p class="noindent" ><a
+ id="ref:ConfigModel"></a> The ConfigModel describes the Attribute configuration of ActorInstances and PortInstances.
+</p><!--l. 37--><p class="noindent" >The scope of this model is the configuration of Attributes of the LogicalModel. Thus it provides enhanced capabilities for
+assigning default values to Attributes, which are: </p>
+ <ul class="itemize1">
+ <li class="itemize">type safe value assignment
+ </li>
+ <li class="itemize">setting on class level
+ </li>
+ <li class="itemize">setting on instance level</li></ul>
+<!--l. 44--><p class="noindent" >Values defined for class attributes are used for all instances unless there is an instance value configured for the same attribute.
+The configuration is available for actors and ports, thus ActorClasses/ActorRefs and ProtocolClasses/Ports.
+</p>
+<!--l. 47-->
+<div class="lstlisting" id="listing-66"><span class="label"><a
+ id="x33-189001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ConfigModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ExampleConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">cp</span>
-
+class="ec-lmtt-9">Example</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">Example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">4</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">LogSys</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subsysRef</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actor1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">7</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-189011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
</div>
-<!--l. 670--><p class="noindent" > </p></td>
+<!--l. 63--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-189012r2"></a></p>
+<!--l. 68--><div class="longtable"> <table id="TBL-18" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-18-1g"><col
+id="TBL-18-1" /></colgroup><colgroup id="TBL-18-2g"><col
+id="TBL-18-2" /><col
+id="TBL-18-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Attribute">Attribute</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-1-3"
+class="td11">
+ <!--l. 68--><p class="noindent" >An Attribute is a member variable of a class </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-18-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-189013r265"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.1.2 </span> <a
+ id="x33-1900002"></a>LogicalModel</h4>
+<!--l. 80--><p class="noindent" ><a
+ id="ref:LogicalModel"></a> The LogicalModel describes the logical structure and behavior of a ROOM application.
+</p><!--l. 83--><p class="noindent" >The ROOM model defines DataTypes, ProtocolClasses, ActorClasses, SubSystemClasses and LogicalSystems. Thereby the
+three latter form a hierarchy. The LogicalSystem is the top level element of the structure. It contains references to
+SubSystemClass elements. The SubSystemClass in turn contains references to ActorClass elements which
+
+
+again contain (recursively) references to ActorClass elements. The complete structural hierarchy implies a tree
+which has the LogicalSystem as root and where each reference stands for a new node with possibly further
+branches.
+</p><!--l. 93--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-190001r3"></a></p>
+<!--l. 98--><div class="longtable"> <table id="TBL-19" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-19-1g"><col
+id="TBL-19-1" /></colgroup><colgroup id="TBL-19-2g"><col
+id="TBL-19-2" /><col
+id="TBL-19-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalSystem">LogicalSystem</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-1-3"
+class="td11">
+ <!--l. 98--><p class="noindent" >The top level structural class. It can only contain sub
+ systems using SubSystemRefs. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-2-3"
+class="td11">
+ <!--l. 99--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-3-3"
+class="td11">
+ <!--l. 100--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-4-3"
+class="td11">
+ <!--l. 101--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-5-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-5-3"
+class="td11">
+ <!--l. 102--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:AnnotationType">AnnotationType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-6-3"
+class="td11">
+ <!--l. 103--><p class="noindent" >AnnotationTypes can be used to tag ROOM classes for
+ further custom processing. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-19-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-10-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-19-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-11-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-11-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-11-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 109--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-190002r4"></a></p>
+<!--l. 114--><div class="longtable"> <table id="TBL-20" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-20-1g"><col
+id="TBL-20-1" /></colgroup><colgroup id="TBL-20-2g"><col
+id="TBL-20-2" /><col
+id="TBL-20-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-1-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-20-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MappingModel">MappingModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-20-1-3"
+class="td11">
+ <!--l. 114--><p class="noindent" >The MappingModel describes the mapping of elements of
+ the LogicalModel to elements of the PhysicalModel. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-1"
-class="td11"> <!--l. 671--><p class="noindent" >Initial Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-2"
-class="td11"> <img
-src="images/040-InitialTransition.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-3"
-class="td11"> <!--l. 672-->
- <div class="lstlisting" id="listing-56"><span class="label"><a
- id="x31-134005r1"></a></span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
+ style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-20-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-20-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-20-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-190003r146"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.1 </span> <a
+ id="x33-1910001"></a>ActorClass</h5>
+<!--l. 125--><p class="noindent" ><a
+ id="ref:ActorClass"></a> The actor is the basic structural building block for building systems with ROOM.
+</p><!--l. 128--><p class="noindent" >An ActorClass consists of three main parts: </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmssbx-10">Interface </span>(external interface) specifies the communication to &#8217;outside&#8217; actors and consists of Ports.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">Structure </span>(internal interface) contains Ports, Attributes and ActorRefs. These elements are accessible from
+ the Behavior part of the actor (in contrary to the external interface above). An ActorClass can be composed of
+ other actors again by declaring ActorRefs. Also this part declares the connection of ports in form of Bindings
+ and LayerConnections.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">Behavior </span>is described by the StateMachine. It can receive and send messages from the ports, declared in the
+ Structure above. The Attributes can be used to store data during an state transition. Furthermore it is possible
+
+
+ to declare Operations. They can be used to define reusable logic, that is invoked during a state transition.</li></ul>
+<!--l. 135--><p class="noindent" ><img
+src="images/040-ActorClass.png" alt="PIC"
+ /> </p><!--l. 136-->
+<div class="lstlisting" id="listing-67"><span class="label"><a
+ id="x33-191001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">init</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ExampleActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port4</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Initial</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port3</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass3</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191014r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef_A</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port5</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191015r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">...</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191016r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191017r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191018r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">...</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191019r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-191020r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span>
-
</div>
-<!--l. 677--><p class="noindent" > </p></td>
+<!--l. 161--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-191021r5"></a></p>
+<!--l. 166--><div class="longtable"> <table id="TBL-21" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-21-1g"><col
+id="TBL-21-1" /></colgroup><colgroup id="TBL-21-2g"><col
+id="TBL-21-2" /><col
+id="TBL-21-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ExecutionType">ExecutionType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-1-3"
+class="td11">
+ <!--l. 166--><p class="noindent" >Determines the execution type of an actor. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-2-3"
+class="td11">
+ <!--l. 167--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-3-3"
+class="td11">
+ <!--l. 168--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SAP">SAP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-4-3"
+class="td11">
+ <!--l. 169--><p class="noindent" >A Service Access Point is similar to a Port, but uses a
+ LayerConnection for wiring. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-5-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SPP">SPP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-5-3"
+class="td11">
+ <!--l. 170--><p class="noindent" >A Service Provision Point is the counterpart of a SAP </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Binding">Binding</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-6-3"
+class="td11">
+ <!--l. 171--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-7-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LayerConnection">LayerConnection</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-7-3"
+class="td11">
+ <!--l. 172--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-8-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Attribute">Attribute</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-8-3"
+class="td11">
+ <!--l. 173--><p class="noindent" >An Attribute is a member variable of a class </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-9-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Operation">Operation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-9-3"
+class="td11">
+ <!--l. 174--><p class="noindent" >An Operation is a member function of a class. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-10-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-10-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:StateMachine">StateMachine</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-10-3"
+class="td11">
+ <!--l. 175--><p class="noindent" >A StateMachine describes the state based, event driven
+ behavior of an ActorClass </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-11-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-11-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-11-3"
+class="td11">
+ <!--l. 176--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-21-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-12-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-12-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Inheritance">Inheritance</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-12-3"
+class="td11">
+ <!--l. 178--><p class="noindent" >A class can specify a super class and inherits elements from
+ the super class hierarchy. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-1"
-class="td11"> <!--l. 678--><p class="noindent" >Triggered Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-2"
-class="td11"> <img
-src="images/040-TriggeredTransition.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-3"
-class="td11"> <!--l. 679-->
- <div class="lstlisting" id="listing-57"><span class="label"><a
- id="x31-134006r1"></a></span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
+ style="vertical-align:baseline;" id="TBL-21-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-13-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-14-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-15-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-16-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-21-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-17-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-21-17-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-17-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 184--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-191022r6"></a></p>
+<!--l. 189--><div class="longtable"> <table id="TBL-22" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-22-1g"><col
+id="TBL-22-1" /></colgroup><colgroup id="TBL-22-2g"><col
+id="TBL-22-2" /><col
+id="TBL-22-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-1-1"
+class="td11"> Typecasts: </td><td style="white-space:nowrap; text-align:left;" id="TBL-22-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-1-3"
+class="td11">
+ <!--l. 189--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-2-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-22-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-2-3"
+class="td11">
+ <!--l. 191--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-22-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-3-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-22-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-3-3"
+class="td11">
+ <!--l. 193--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-22-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-22-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-22-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-22-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-22-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-22-8-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-8-3"
+class="td11">
+</td></tr>
+
+
+</table></div>
+<!--l. 198--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+<a
+ id="x33-191023r267"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.2 </span> <a
+ id="x33-1920002"></a>ActorRef</h5>
+<!--l. 207--><p class="noindent" ><a
+ id="ref:ActorRef"></a> An ActorRef is an instance of an ActorClass.
+</p>
+ <ul class="itemize1">
+ <li class="itemize">ActorClass: The type of the ActorRef
+ </li>
+ <li class="itemize">Multiplicity: The number of instances. A number greater than one can be seen as an array of instances
+ </li>
+ <li class="itemize">Reference Type: Can be fixed or optional. Fixed requires an integer multiplicity and results in an static
+ instantiation with an fixed number of instances during runtime . Optional denotes an dynamic instantiation,
+ where ActorRefs can be created in arbitrary number during runtime. In this case, the multiplicity has to be set
+ to &#8217;*&#8217;</li></ul>
+<!--l. 216--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">multiplicity : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">1..n</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">*</span></span></span>&#8217;</li></ul>
+<!--l. 222--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-192001r7"></a></p>
+<!--l. 227--><div class="longtable"> <table id="TBL-23" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-23-1g"><col
+id="TBL-23-1" /></colgroup><colgroup id="TBL-23-2g"><col
+id="TBL-23-2" /><col
+id="TBL-23-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-23-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-23-1-3"
+class="td11">
+ <!--l. 227--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-2-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-23-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Replication">Replication</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-23-2-3"
+class="td11">
+ <!--l. 229--><p class="noindent" >Replication is mechanism for multi instantiation for
+ ActorRefs and Ports. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-23-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-23-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-23-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-23-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-23-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 235--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-192002r8"></a></p>
+<!--l. 240--><div class="longtable"> <table id="TBL-24" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-24-1g"><col
+id="TBL-24-1" /></colgroup><colgroup id="TBL-24-2g"><col
+id="TBL-24-2" /><col
+id="TBL-24-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-24-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-24-1-3"
+class="td11">
+ <!--l. 240--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-24-2-3"
+class="td11">
+ <!--l. 241--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-24-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-3-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-24-3-3"
+class="td11">
+ <!--l. 243--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:ActorRefPropertyDialog">ActorRefPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-24-4-3"
+class="td11">
+ <!--l. 244--><p class="noindent" >A dialog to edit properties of an ActorRef. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-24-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-24-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-24-9-3"
+class="td11">
+</td></tr>
+
+
+</table></div>
+<!--l. 249--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 251-->
+<div class="lstlisting" id="listing-68"><span class="label"><a
+ id="x33-192003r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubSystemExample</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">mainActor</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr0</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">ActorClassExample</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">default_thread</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DoingThis</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassExample</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-134007r2"></a></span><span
+ id="x33-192010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-134008r3"></a></span><span
+ id="x33-192011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">doThis</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">fct</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">Sender</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-134009r4"></a></span><span
+ id="x33-192012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-134010r5"></a></span><span
+ id="x33-192016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassExampleReplicated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Sender</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">[3]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192023r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">/*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Equivalent</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">to</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192025r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">[1].</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">[1].</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192026r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">[2].</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">[2].</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192027r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">....</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192028r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">*/</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192029r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-192030r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span>
-
</div>
-<!--l. 688--><p class="noindent" > </p></td>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x33-192031r1"></a>
+
+
+
+<!--l. 282--><p class="noindent" ><img
+src="images/300-ActorRefInstanceDiagram.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;7.1: </span><span
+class="content">*</span></div><!--tex4ht:label?: x33-192031r1 -->
+Instance hierarchy of ActorRef Example (System(System) not shown in code snippet)
+
+
+</div><hr class="endfigure" />
+<a
+ id="x33-192032r268"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.3 </span> <a
+ id="x33-1930003"></a>Annotation</h5>
+<!--l. 291--><p class="noindent" ><a
+ id="ref:Annotation"></a> An Annotation can be attached to a ROOM classes to apply the properties of its AnnotationType.
+</p><!--l. 294--><p class="noindent" >It refers to an AnnotationType and may have to pass key value pairs. Its notation is similar to Java: </p><!--l. 295-->
+<div class="lstlisting" id="listing-69"><span class="label"><a
+ id="x33-193001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">@AnnotationType1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-193002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">@AnnotationType2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">key1</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">STRING</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">key2</span><span
+class="ec-lmtt-9">=3,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">...)</span>
+</div>
+<!--l. 300--><p class="noindent" >See section Annotations for further reading.
+</p><!--l. 304--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-193003r9"></a></p>
+<!--l. 309--><div class="longtable"> <table id="TBL-25" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-25-1g"><col
+id="TBL-25-1" /></colgroup><colgroup id="TBL-25-2g"><col
+id="TBL-25-2" /><col
+id="TBL-25-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-25-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:AnnotationType">AnnotationType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-25-1-3"
+class="td11">
+ <!--l. 309--><p class="noindent" >AnnotationTypes can be used to tag ROOM classes for
+ further custom processing. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-8-1"
-class="td11"> </td></tr></table></div>
+ style="vertical-align:baseline;" id="TBL-25-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-25-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-25-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-25-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-25-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-25-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-25-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 315--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-193004r10"></a></p>
+<!--l. 320--><div class="longtable"> <table id="TBL-26" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-26-1g"><col
+id="TBL-26-1" /></colgroup><colgroup id="TBL-26-2g"><col
+id="TBL-26-2" /><col
+id="TBL-26-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-26-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalSystem">LogicalSystem</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-1-3"
+class="td11">
+ <!--l. 320--><p class="noindent" >The top level structural class. It can only contain sub
+ systems using SubSystemRefs. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-2-3"
+class="td11">
+ <!--l. 321--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-3-3"
+class="td11">
+ <!--l. 322--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-4-3"
+class="td11">
+ <!--l. 323--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-5-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataClass">DataClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-5-3"
+class="td11">
+ <!--l. 324--><p class="noindent" >A DataClass is a composition of Attributes. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-26-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-6-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse26.html#ref:DataLogging">DataLogging</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-6-3"
+class="td11">
+ <!--l. 326--><p class="noindent" >Runtime logger for data-driven Messages with primtive
+ data. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-26-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-10-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-26-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-11-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-26-11-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-26-11-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 331--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p><!--l. 333--><p class="noindent" >import room.basic.annotations.* from "../../org.eclipse.etrice.modellib.c/model/Annotations.room"
+</p><!--l. 335--><p class="noindent" >ActorClass ComponentAbstraction Interface conjugated Port port1: Protocol1 Structure external Port port1 Behavior //
+custom/external state machine implementation @BehaviorManual
+
+
+<a
+ id="x33-193005r270"></a>
+</p>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.4 </span> <a
+ id="x33-1940004"></a>AnnotationType</h5>
+<!--l. 353--><p class="noindent" ><a
+ id="ref:AnnotationType"></a> AnnotationTypes can be used to tag ROOM classes for further custom processing.
+</p><!--l. 356--><p class="noindent" >They provide the ability to associate custom properties to ROOM classes, that adjust or toogle features, like generation or
+the runtime behavior. eTrice has some built-in annotations, which can be found in Annotations.room within the eTrice
+modellib.
+</p><!--l. 359--><p class="noindent" >See section Annotations for further reading.
+</p><!--l. 364--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-194001r11"></a></p>
+<!--l. 369--><div class="longtable"> <table id="TBL-27" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-27-1g"><col
+id="TBL-27-1" /></colgroup><colgroup id="TBL-27-2g"><col
+id="TBL-27-2" /><col
+id="TBL-27-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-27-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-1-1"
+class="td11"> Typecasts: </td><td style="white-space:nowrap; text-align:left;" id="TBL-27-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-27-1-3"
+class="td11">
+ <!--l. 369--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-27-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-2-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-27-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-27-2-3"
+class="td11">
+ <!--l. 371--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-27-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-27-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-27-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-27-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-27-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-27-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-27-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-194002r271"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.5 </span> <a
+ id="x33-1950005"></a>Attribute</h5>
+<!--l. 382--><p class="noindent" ><a
+ id="ref:Attribute"></a> An Attribute is a member variable of a class
+</p><!--l. 385--><p class="noindent" >An Attribute can be be used to store arbitrary data. There are two common conceptual purpose of use:
+</p>
+ <ul class="itemize1">
+ <li class="itemize">model current system state (state machine variable)
+ </li>
+ <li class="itemize">store reference to more fine-grained components (e.g. c pointer to handle)</li></ul>
+<!--l. 391--><p class="noindent" >Attributes can be defined in ActorClasses, DataClasses and ProtocolClasses.
+</p><!--l. 393--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">defaultValueLiteral : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;target</span><span
+class="ec-lmtt-10">&#x00A0;code&#x003E;</span></span></span>&#8217;
+ </li>
+ <li class="itemize">multiplicity : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">1..n</span></span></span>&#8217;</li></ul>
+<!--l. 400--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-195001r12"></a></p>
+<!--l. 405--><div class="longtable"> <table id="TBL-28" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-28-1g"><col
+id="TBL-28-1" /></colgroup><colgroup id="TBL-28-2g"><col
+id="TBL-28-2" /><col
+id="TBL-28-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-28-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-28-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-28-1-3"
+class="td11">
+ <!--l. 405--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-28-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-28-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-28-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-28-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-28-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-28-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-28-6-3"
+class="td11">
+</td></tr>
+</table></div>
-</div><hr class="endfloat" />
+<!--l. 411--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-195002r13"></a></p>
+<!--l. 416--><div class="longtable"> <table id="TBL-29" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-29-1g"><col
+id="TBL-29-1" /></colgroup><colgroup id="TBL-29-2g"><col
+id="TBL-29-2" /><col
+id="TBL-29-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-29-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-29-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-29-1-3"
+class="td11">
+ <!--l. 416--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-29-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-29-2-3"
+class="td11">
+ <!--l. 417--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-29-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataClass">DataClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-29-3-3"
+class="td11">
+ <!--l. 418--><p class="noindent" >A DataClass is a composition of Attributes. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-29-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-4-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-29-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ConfigModel">ConfigModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-29-4-3"
+class="td11">
+ <!--l. 420--><p class="noindent" >The ConfigModel describes the Attribute configuration of
+ ActorInstances and PortInstances. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-29-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-29-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-29-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-29-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 425--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 427-->
+<div class="lstlisting" id="listing-70"><span class="label"><a
+ id="x33-195003r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">../../../</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">Types</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleDataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int16</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithAttributes</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PrimitiveType</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleDataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithAttributes2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arrayAttribute</span><span
+class="ec-lmtt-9">[8]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">multiplicity</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">refAttribue</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">voidType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">as</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pointer</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195023r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithAttributeInitialization</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195025r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195026r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">3</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195027r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleDataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">{1,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">2}</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195028r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arrayAttribute</span><span
+class="ec-lmtt-9">[8]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{0,0,0,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">...}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195029r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">refAttribue</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">voidType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">NULL</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">set</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">constructor</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">state</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">machine</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195030r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-195031r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
</div>
<a
- id="Q1-31-183"></a>
-<h5 class="likesubsubsectionHead"><a
- id="x31-1350003"></a>Hierarchical Finite State Machine</h5>
-<!--l. 695--><p class="noindent" >The hierarchical finite state machine adds the notion of a sub state machine nested in a state. A few modeling elements listed
-in table <a
-href="#x31-135001r7">5.7<!--tex4ht:ref: tab:hier_fsm_notation --></a> are added to the set listed above.
+ id="x33-195032r272"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.6 </span> <a
+ id="x33-1960006"></a>Binding</h5>
+<!--l. 464--><p class="noindent" ><a
+ id="ref:Binding"></a> A Binding connects two Ports with each other.
+</p><!--l. 467--><p class="noindent" >In essence, a binding is a abstraction for an underlying communication channel whose function is to convey messages from
+one port to the other. The precise semantics of these channels are not defined in the Binding. Instead, they are determined by
+the ProtocolClasses that are associated with the Ports at the end of the Binding.
</p>
-<div class="table">
+<!--l. 470-->
+<div class="lstlisting" id="listing-71"><span class="label"><a
+ id="x33-196001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ExampleActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sender</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">receiver</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-196008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 483--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-196009r14"></a></p>
+<!--l. 488--><div class="longtable"> <table id="TBL-30" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-30-1g"><col
+id="TBL-30-1" /></colgroup><colgroup id="TBL-30-2g"><col
+id="TBL-30-2" /><col
+id="TBL-30-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-30-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-30-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> : endpoint1 </td><td style="white-space:wrap; text-align:left;" id="TBL-30-1-3"
+class="td11">
+ <!--l. 488--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-30-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-30-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> : endpoint2 </td><td style="white-space:wrap; text-align:left;" id="TBL-30-2-3"
+class="td11">
+ <!--l. 489--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-30-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-30-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-30-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-30-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-30-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-30-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-30-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 495--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
-<!--l. 699--><p class="noindent" ><a
- id="x31-135001r7"></a></p><hr class="float" /><div class="float"
->
+<a
+ id="x33-196010r15"></a></p><!--l. 500--><div class="longtable"> <table id="TBL-31" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-31-1g"><col
+id="TBL-31-1" /></colgroup><colgroup id="TBL-31-2g"><col
+id="TBL-31-2" /><col
+id="TBL-31-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-31-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-31-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalSystem">LogicalSystem</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-31-1-3"
+class="td11">
+ <!--l. 500--><p class="noindent" >The top level structural class. It can only contain sub
+ systems using SubSystemRefs. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-31-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-31-2-3"
+class="td11">
+ <!--l. 501--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-31-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-31-3-3"
+class="td11">
+ <!--l. 502--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-31-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-4-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-31-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-31-4-3"
+class="td11">
+ <!--l. 504--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-31-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-31-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-31-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-31-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-196011r273"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.7 </span> <a
+ id="x33-1970007"></a>CommunicationType</h5>
+<!--l. 515--><p class="noindent" ><a
+ id="ref:CommunicationType"></a> The CommunicationType defines the communication semantics of a ProtocolClass.
+</p><!--l. 518--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define the way the actors are
+executed and communicate with each other. The combination of communication and execution is called the
+<span
+class="ec-lmsso-10">execution model</span>. Therefore the ExecutionType of an actor and the CommunicationType of the ports has to be
+considered.
+</p><!--l. 522--><p class="noindent" >The CommunicationType of a ProtocolClass (and thus of a Port) specifies in which way the communication should
+happen:
+</p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmssbx-10">message driven </span>&#8211; asynchronous, non blocking, no return value:<br
+class="newline" />Usually the message driven communication is implemented with message queues. Message queues are inherently
+ asynchronous and enable a very good decoupling of the communicating parties.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">data driven </span>&#8211; asynchronous, non blocking, no return value:<br
+class="newline" />In data driven communication sender and receiver often have a shared block of data. The sender writes the
+ data and the receiver polls the data.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbo-10">function call </span><span
+class="ec-lmsso-10">&#8211; synchronous, blocking, return value:</span><br
+class="newline" /><span
+class="ec-lmsso-10">Regular function call as known in most programming languages. </span>(not supported yet)</li></ul>
+<!--l. 533--><p class="noindent" >CommunicationType relates with the <a
+href="#ref:ExecutionType">ExecutionType</a> of an ActorClass, e.g. a data-driven port needs a cyclic thread, that polls
+the shared data.
+</p><!--l. 535--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">type : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">eventdriven</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">datadriven</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">sync</span></span></span>&#8217;</li></ul>
+<!--l. 542--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-197001r16"></a></p>
+<!--l. 547--><div class="longtable"> <table id="TBL-32" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-32-1g"><col
+id="TBL-32-1" /></colgroup><colgroup id="TBL-32-2g"><col
+id="TBL-32-2" /><col
+id="TBL-32-3" /></colgroup>
- <div class="caption"
-><span class="id">Table&#x00A0;5.7: </span><span
-class="content">Additional notation elements of hierarchical finite state machines</span></div><!--tex4ht:label?: x31-135001r7 -->
-<div class="tabular"> <table id="TBL-13" class="tabular"
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-32-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-32-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-32-1-3"
+class="td11">
+ <!--l. 547--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-32-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-2-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-32-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ExecutionType">ExecutionType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-32-2-3"
+class="td11">
+ <!--l. 549--><p class="noindent" >Determines the execution type of an actor. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-32-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-32-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-32-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-32-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-32-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-32-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-32-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 554--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 556-->
+<div class="lstlisting" id="listing-72"><span class="label"><a
+ id="x33-197002r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">../../../</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">Types</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">EventdrivenProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">default</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">explicit</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">EventdrivenProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">without</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197009r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197010r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197011r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197012r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg4</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">can</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">have</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">into</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">two</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">directions</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197013r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197014r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197015r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197016r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DatadrivenProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197017r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197018r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">signal1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197019r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197020r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">can</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">only</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">have</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">messages</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">signals</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197021r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197022r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197023r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sync</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">not</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">supported</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">yet</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197024r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">sync</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SyncProtcolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197025r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-197026r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<a
+ id="x33-197027r274"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.8 </span> <a
+ id="x33-1980008"></a>DataClass</h5>
+<!--l. 589--><p class="noindent" ><a
+ id="ref:DataClass"></a> A DataClass is a composition of Attributes.
+</p><!--l. 592--><p class="noindent" >Intended to model a type that primarily consists of data, which is usually grouped together in some manner. DataClasses
+roughly translate to Java classes without interaction or C structs.
+</p>
+<!--l. 594-->
+<div class="lstlisting" id="listing-73"><span class="label"><a
+ id="x33-198001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TCPConnectionData</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">IPAddr</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">string</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TcpPort</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 603--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-198005r17"></a></p>
+<!--l. 608--><div class="longtable"> <table id="TBL-33" class="longtable"
cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-13-1g"><col
-id="TBL-13-1" /></colgroup><colgroup id="TBL-13-2g"><col
-id="TBL-13-2" /></colgroup><colgroup id="TBL-13-3g"><col
-id="TBL-13-3" /></colgroup><tr
+><colgroup id="TBL-33-1g"><col
+id="TBL-33-1" /></colgroup><colgroup id="TBL-33-2g"><col
+id="TBL-33-2" /><col
+id="TBL-33-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-33-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-1-3"
+class="td11">
+ <!--l. 608--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-1"
-class="td11"> <!--l. 703--><p class="noindent" ><span
-class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-3"
-class="td11"> <!--l. 703--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
+ style="vertical-align:baseline;" id="TBL-33-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-2-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Attribute">Attribute</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-2-3"
+class="td11">
+ <!--l. 610--><p class="noindent" >An Attribute is a member variable of a class </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-33-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Operation">Operation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-3-3"
+class="td11">
+ <!--l. 611--><p class="noindent" >An Operation is a member function of a class. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-33-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-4-3"
+class="td11">
+ <!--l. 612--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-1"
-class="td11"> <!--l. 705--><p class="noindent" >State with sub state
- machine </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-2"
-class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-14-1g"><col
-id="TBL-14-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-1-1"
-class="td00">Parent State</td></tr><tr
- style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-2-1"
-class="td00"> <img
-src="images/040-StateWithSubFSM.jpg" alt="PIC"
- /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-3"
-class="td11"> <div class="tabular"> <table id="TBL-15" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-15-1g"><col
-id="TBL-15-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1"
-class="td11">Sub state machine </td>
+ style="vertical-align:baseline;" id="TBL-33-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-5-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Inheritance">Inheritance</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-5-3"
+class="td11">
+ <!--l. 614--><p class="noindent" >A class can specify a super class and inherits elements from
+ the super class hierarchy. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-33-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-33-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-33-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-8-1"
+class="td11"> </td>
</tr><tr
- style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-1"
-class="td11"><!--l. 710--> <!--l. 710--><p class="noindent" ><div class="lstlisting" id="listing-58"><span class="label"><a
- id="x31-135002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">State</span><span
+ style="vertical-align:baseline;" id="TBL-33-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-33-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-10-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-33-10-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-33-10-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 620--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 622-->
+<div class="lstlisting" id="listing-74"><span class="label"><a
+ id="x33-198006r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Running</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleDataClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-135003r2"></a></span><span
+ id="x33-198007r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint16</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198008r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198009r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">subgraph</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198010r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198011r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClassExample</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-135004r3"></a></span><span
+ id="x33-198012r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">init</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198013r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Process</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{}</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleDataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198014r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute3</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">voidType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198015r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-198016r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint16</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">boolean</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-135005r4"></a></span><span
+ id="x33-198017r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Process</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">true</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-135006r5"></a></span><span
+ id="x33-198018r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x31-135007r6"></a></span><span
+ id="x33-198019r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span>
- </div> </p></td>
-</tr></table></div>
- <!--l. 722--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-1"
-class="td11"> <!--l. 723--><p class="noindent" >Entry Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-2"
-class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-16-1g"><col
-id="TBL-16-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-1-1"
-class="td00">In sub state machine</td></tr><tr
- style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-2-1"
-class="td00"> <img
-src="images/040-EntryPoint.jpg" alt="PIC"
- /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-3"
-class="td11"> <!--l. 726-->
- <div class="lstlisting" id="listing-59"><span class="label"><a
- id="x31-135008r1"></a></span><span
-class="ec-lmssbx-10x-x-90">EntryPoint</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reInit</span>
-
+
+
</div>
-<!--l. 730--><p class="noindent" > </p></td>
+<a
+ id="x33-198020r275"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.9 </span> <a
+ id="x33-1990009"></a>DataType</h5>
+<!--l. 644--><p class="noindent" ><a
+ id="ref:DataType"></a> A DataType can take 4 forms and types data elements like an Attribute or Operation argument.
+</p><!--l. 651--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-199001r18"></a></p>
+<!--l. 656--><div class="longtable"> <table id="TBL-34" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-34-1g"><col
+id="TBL-34-1" /></colgroup><colgroup id="TBL-34-2g"><col
+id="TBL-34-2" /><col
+id="TBL-34-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-34-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-1-1"
+class="td11"> Inheriting features: </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:PrimitiveType">PrimitiveType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-1-3"
+class="td11">
+ <!--l. 656--><p class="noindent" >A PrimitiveType is an abstraction of a target language&#8217;s
+ basic type (e.g. integer or boolean). </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:EnumerationType">EnumerationType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-2-3"
+class="td11">
+ <!--l. 657--><p class="noindent" >An EnumerationType declares an enumeration similar to
+ most well-known languages. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataClass">DataClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-3-3"
+class="td11">
+ <!--l. 658--><p class="noindent" >A DataClass is a composition of Attributes. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ExternalType">ExternalType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-4-3"
+class="td11">
+ <!--l. 659--><p class="noindent" >An ExternalType is used to make an target language type
+ accessible in ROOM. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-34-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-5-1"
+class="td11"> Typecasts: </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Attribute">Attribute</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-5-3"
+class="td11">
+ <!--l. 661--><p class="noindent" >An Attribute is a member variable of a class </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-34-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-6-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-6-3"
+class="td11">
+ <!--l. 663--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-34-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-7-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-7-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Operation">Operation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-7-3"
+class="td11">
+ <!--l. 665--><p class="noindent" >An Operation is a member function of a class. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-34-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-10-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-11-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-34-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-12-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-34-12-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-34-12-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-199002r276"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.10 </span> <a
+ id="x33-20000010"></a>EnumerationType</h5>
+<!--l. 676--><p class="noindent" ><a
+ id="ref:EnumerationType"></a> An EnumerationType declares an enumeration similar to most well-known languages.
+</p><!--l. 680--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">literals : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;name&#x003E;</span></span></span>&#8217;</li></ul>
+<!--l. 686--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-200001r19"></a></p>
+<!--l. 691--><div class="longtable"> <table id="TBL-35" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-35-1g"><col
+id="TBL-35-1" /></colgroup><colgroup id="TBL-35-2g"><col
+id="TBL-35-2" /><col
+id="TBL-35-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-35-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-35-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-35-1-3"
+class="td11">
+ <!--l. 691--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-1"
-class="td11"> <!--l. 731--><p class="noindent" >Exit Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-2"
-class="td11"> <img
-src="images/040-ExitPoint.jpg" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-3"
-class="td11"> <!--l. 733-->
- <div class="lstlisting" id="listing-60"><span class="label"><a
- id="x31-135009r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ExitPoint</span><span
+ style="vertical-align:baseline;" id="TBL-35-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-35-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-35-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-35-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-35-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-35-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-35-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 697--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 699-->
+
+
+<div class="lstlisting" id="listing-75"><span class="label"><a
+ id="x33-200002r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">EOnOff</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Off</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">explicit</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">=0</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">On</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">explicit</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">=1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Enumeration</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">EDay</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200009r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SUN</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200010r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MON</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200011r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TUE</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200012r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">WED</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200013r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">THU</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200014r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">FRI</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200015r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tp0</span>
-
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SAT</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">implicit</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">enumeration</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0..6</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-200016r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
</div>
-<!--l. 736--><p class="noindent" > </p></td>
+<a
+ id="x33-200017r277"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.11 </span> <a
+ id="x33-20100011"></a>ExecutionType</h5>
+<!--l. 722--><p class="noindent" ><a
+ id="ref:ExecutionType"></a> Determines the execution type of an actor.
+</p><!--l. 725--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define the way the actors are
+executed and communicate with each other. The combination of communication and execution is called the
+<span
+class="ec-lmsso-10">execution model</span>. Therefore the ExecutionType of an actor and the CommunicationType of the ports has to be
+considered.
+</p><!--l. 729--><p class="noindent" >The ExecutionType of an ActorClass specifies in which way its instance (ActorRef) should be executed: </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmssbx-10">execution by receive event</span>: The message queue or the event dispatcher calls a <span
+class="ec-lmssbx-10">receive event </span>function of
+ the message receiver and thereby executes the processing of the event.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">polled execution</span>: The objects are processed by a cyclic <span
+class="ec-lmssbx-10">execute </span>call
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbo-10">execution by function call</span><span
+class="ec-lmsso-10">: The caller executes the called object via function call </span>(not supported yet)
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">mixture</span>: An asynchronous execution combines an event dispachter and a polled execution.</li></ul>
+<!--l. 738--><p class="noindent" >Thereby the ExecutionType determines the execution mode of the actor&#8217;s logical thread: <img
+src="images/010-RoomIntroduction03.png" alt="PIC"
+ />
+</p><!--l. 741--><p class="noindent" >The actual execution of the underlying physical thread can be specified in the PhysicalModel in conjunction with the
+MappingModel.
+</p><!--l. 743--><p class="noindent" >ExecutionType relates to the <a
+href="#ref:CommunicationType">CommunicationType</a>, e.g. if an actor uses data-driven ports, it should support an polled
+execution.
+</p><!--l. 745--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">mode : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">eventdriven</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">datadriven</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">async</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">sync</span></span></span>&#8217;</li></ul>
+<!--l. 751--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-201001r20"></a></p>
+<!--l. 756--><div class="longtable"> <table id="TBL-36" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-36-1g"><col
+id="TBL-36-1" /></colgroup><colgroup id="TBL-36-2g"><col
+id="TBL-36-2" /><col
+id="TBL-36-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-36-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-36-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CommunicationType">CommunicationType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-36-1-3"
+class="td11">
+ <!--l. 756--><p class="noindent" >The CommunicationType defines the communication
+ semantics of a ProtocolClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-36-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-36-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-36-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-36-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-36-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-36-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-36-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 762--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-201002r21"></a></p>
+<!--l. 767--><div class="longtable"> <table id="TBL-37" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-37-1g"><col
+id="TBL-37-1" /></colgroup><colgroup id="TBL-37-2g"><col
+id="TBL-37-2" /><col
+id="TBL-37-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-37-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-37-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-37-1-3"
+class="td11">
+ <!--l. 767--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-5-1"
-class="td11"> </td></tr></table>
+ style="vertical-align:baseline;" id="TBL-37-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-37-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-37-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-37-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-37-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-37-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-37-6-3"
+class="td11">
+</td></tr>
+
+
+</table></div>
+<!--l. 772--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 774-->
+<div class="lstlisting" id="listing-76"><span class="label"><a
+ id="x33-201003r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">EventdrivenActor</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">[</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">default</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">only</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">event</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">driven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Ports</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRefs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allowed</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DatadrivenActor</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">only</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">driven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Ports</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRefs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allowed</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">async</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MixedActor</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">both</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">event</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">driven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Ports</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRefs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allowed</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-201013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
</div>
+<a
+ id="x33-201014r278"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.12 </span> <a
+ id="x33-20200012"></a>ExternalEndPort</h5>
+<!--l. 793--><p class="noindent" ><a
+ id="ref:ExternalEndPort"></a> A ExternalEndPort is an interface Port, that is made accessible to the internal interface of an ActorClass.
+</p>
+<!--l. 796-->
+<div class="lstlisting" id="listing-77"><span class="label"><a
+ id="x33-202001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ExternalEndPortExample</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">externalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">connect</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">outside</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thus</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">containing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">externalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PSimpleProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">externalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">send</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">receive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">messages</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">externalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-202012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 813--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-202013r22"></a></p>
+<!--l. 818--><div class="longtable"> <table id="TBL-38" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-38-1g"><col
+id="TBL-38-1" /></colgroup><colgroup id="TBL-38-2g"><col
+id="TBL-38-2" /><col
+id="TBL-38-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-38-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-38-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-38-1-3"
+class="td11">
+ <!--l. 818--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-38-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-38-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-38-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-38-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-38-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-38-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-38-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-202014r279"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.13 </span> <a
+ id="x33-20300013"></a>ExternalType</h5>
+<!--l. 830--><p class="noindent" ><a
+ id="ref:ExternalType"></a> An ExternalType is used to make an target language type accessible in ROOM.
+</p><!--l. 834--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">targetName : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;identifier</span><span
+class="ec-lmtt-10">&#x00A0;name&#x003E;</span></span></span>&#8217;</li></ul>
+<!--l. 840--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-203001r23"></a></p>
+<!--l. 845--><div class="longtable"> <table id="TBL-39" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-39-1g"><col
+id="TBL-39-1" /></colgroup><colgroup id="TBL-39-2g"><col
+id="TBL-39-2" /><col
+id="TBL-39-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-39-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-39-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-39-1-3"
+class="td11">
+ <!--l. 845--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-39-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-39-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-39-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-39-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-39-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-39-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-39-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 851--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
-</div><hr class="endfloat" />
+<!--l. 853-->
+<div class="lstlisting" id="listing-78"><span class="label"><a
+ id="x33-203002r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Include</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needed</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">when</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">used</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">e</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">g</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithExternalType</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ExternalType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">someStructType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">struct</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">FILE_HANDLE</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithExternalType</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">usercode1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">#</span><span
+class="ec-lmtt-9">include</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">___</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">h</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">/*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">User</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">includes</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">here</span><span
+class="ec-lmtt-9">*/</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203009r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203010r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">someHandle</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">someStructType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">include</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203011r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203012r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203013r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">charPtr</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203014r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">calls</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">casts</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">may</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">need</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">includes</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203015r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">write</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">someHandle</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203016r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203017r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-203018r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
</div>
<a
- id="x31-135010r179"></a>
-<h4 class="subsectionHead"><span class="titlemark">5.6.4 </span> <a
- id="x31-1360004"></a>Examples</h4>
-<hr class="figure" /><div class="figure"
->
+ id="x33-203019r280"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.14 </span> <a
+ id="x33-20400014"></a>Inheritance</h5>
+<!--l. 878--><p class="noindent" ><a
+ id="ref:Inheritance"></a> A class can specify a super class and inherits elements from the super class hierarchy.
+</p><!--l. 886--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-204001r24"></a></p>
+<!--l. 891--><div class="longtable"> <table id="TBL-40" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-40-1g"><col
+id="TBL-40-1" /></colgroup><colgroup id="TBL-40-2g"><col
+id="TBL-40-2" /><col
+id="TBL-40-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-40-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-1-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-40-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-40-1-3"
+class="td11">
+ <!--l. 891--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-40-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:StateMachine">StateMachine</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-40-2-3"
+class="td11">
+ <!--l. 892--><p class="noindent" >A StateMachine describes the state based, event driven
+ behavior of an ActorClass </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-40-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-40-3-3"
+class="td11">
+ <!--l. 893--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-40-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataClass">DataClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-40-4-3"
+class="td11">
+ <!--l. 894--><p class="noindent" >A DataClass is a composition of Attributes. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-40-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-40-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-40-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-40-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 899--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 901-->
+<div class="lstlisting" id="listing-79"><span class="label"><a
+ id="x33-204002r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorSubClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">extends</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">inherits</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">all</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">elements</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">super</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">hierarchy</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204009r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204010r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204011r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204012r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204013r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204014r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204015r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204016r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204017r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204018r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204019r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204020r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolSubClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">extends</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204021r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">inherits</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">all</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">elements</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">super</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">hierarchy</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204022r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204023r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204024r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204025r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204026r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204027r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204028r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204029r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204030r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataSubClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">extends</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204031r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">inherits</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">all</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">elements</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">super</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">hierarchy</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204032r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204033r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204034r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataBaseClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204035r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-204036r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<a
+ id="x33-204037r281"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.15 </span> <a
+ id="x33-20500015"></a>InternalEndPort</h5>
+<!--l. 944--><p class="noindent" ><a
+ id="ref:InternalEndPort"></a> A InternalEndPort is an local Port, that is declared in the internal interface of an ActorClass.
+</p>
+<!--l. 947-->
+<div class="lstlisting" id="listing-80"><span class="label"><a
+ id="x33-205001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">InternalEndPortExample</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">internalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PSimpleProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">internalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">lives</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">local</span><span
+class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thus</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">to</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">internalEndPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">externalPort2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">send</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">receive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">messages</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">internalEndPorts</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-205013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 962--><p class="noindent" ><img
+src="images/300-InternalEndPort.png" alt="PIC"
+ />
+</p><!--l. 966--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-205014r25"></a></p>
+<!--l. 971--><div class="longtable"> <table id="TBL-41" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-41-1g"><col
+id="TBL-41-1" /></colgroup><colgroup id="TBL-41-2g"><col
+id="TBL-41-2" /><col
+id="TBL-41-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-41-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-41-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-41-1-3"
+class="td11">
+ <!--l. 971--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-41-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-41-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-41-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-41-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-41-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-41-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-41-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-205015r282"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.16 </span> <a
+ id="x33-20600016"></a>LayerConnection</h5>
+<!--l. 983--><p class="noindent" ><a
+ id="ref:LayerConnection"></a> A LayerConnection associates a SPP to an ActorRef, resulting in an connection of all SAPs on its instance
+hierarchy.
+</p>
+ <ul class="itemize1">
+ <li class="itemize">An actor class can define a Service Provision Point (SPP) to publish a specific service, defined by a protocol
+ class
+ </li>
+ <li class="itemize">An actor class can define a Service Access Point (SAP) if it needs a service, defined by a protocol class
+ </li>
+ <li class="itemize">For a given actor hierarchy, a LayerConnection defines which SAP will be satisfied by (connected to) which
+ SPP</li></ul>
+<!--l. 994--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
<a
- id="x31-136001r1"></a>
+ id="x33-206001r26"></a></p>
+<!--l. 999--><div class="longtable"> <table id="TBL-42" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-42-1g"><col
+id="TBL-42-1" /></colgroup><colgroup id="TBL-42-2g"><col
+id="TBL-42-2" /><col
+id="TBL-42-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-42-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-42-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SAP">SAP</a> : SAPoint </td><td style="white-space:wrap; text-align:left;" id="TBL-42-1-3"
+class="td11">
+ <!--l. 999--><p class="noindent" >A Service Access Point is similar to a Port, but uses a
+ LayerConnection for wiring. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-42-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-42-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SPP">SPP</a> : SPPoint </td><td style="white-space:wrap; text-align:left;" id="TBL-42-2-3"
+class="td11">
+ <!--l. 1000--><p class="noindent" >A Service Provision Point is the counterpart of a SAP </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-42-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-42-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-42-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-42-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-42-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-42-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-42-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1006--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-206002r27"></a></p>
+<!--l. 1011--><div class="longtable"> <table id="TBL-43" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-43-1g"><col
+id="TBL-43-1" /></colgroup><colgroup id="TBL-43-2g"><col
+id="TBL-43-2" /><col
+id="TBL-43-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-43-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-43-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalSystem">LogicalSystem</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-43-1-3"
+class="td11">
+ <!--l. 1011--><p class="noindent" >The top level structural class. It can only contain sub
+ systems using SubSystemRefs. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-43-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-43-2-3"
+class="td11">
+ <!--l. 1012--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-43-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-43-3-3"
+class="td11">
+ <!--l. 1013--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-43-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-4-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-43-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-43-4-3"
+class="td11">
+ <!--l. 1015--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-43-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-8-1"
+class="td11"> </td>
-<!--l. 743--><p class="noindent" ><img
-src="images/040-FlatFSM.jpg" alt="PIC"
- />
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;5.1: </span><span
-class="content">Example of a flat finite state machine</span></div><!--tex4ht:label?: x31-136001r1 -->
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-43-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-43-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-43-9-3"
+class="td11"></td></tr>
+</table></div>
+<a
+ id="x33-206003r283"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.17 </span> <a
+ id="x33-20700017"></a>LogicalSystem</h5>
+<!--l. 1026--><p class="noindent" ><a
+ id="ref:LogicalSystem"></a> The top level structural class. It can only contain sub systems using SubSystemRefs.
+</p><!--l. 1029--><p class="noindent" >The LogicalSystem is composed of sub system instances. It also defines Bindings and LayerConnections between those sub
+systems.
+</p><!--l. 1033--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-207001r28"></a></p>
+<!--l. 1038--><div class="longtable"> <table id="TBL-44" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-44-1g"><col
+id="TBL-44-1" /></colgroup><colgroup id="TBL-44-2g"><col
+id="TBL-44-2" /><col
+id="TBL-44-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-44-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-44-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemRef">SubSystemRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-44-1-3"
+class="td11">
+ <!--l. 1038--><p class="noindent" >A Sub System Reference is an instance of an
+ SubSystemClass </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-44-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Binding">Binding</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-44-2-3"
+class="td11">
+ <!--l. 1039--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-44-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LayerConnection">LayerConnection</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-44-3-3"
+class="td11">
+ <!--l. 1040--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-44-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-44-4-3"
+class="td11">
+ <!--l. 1041--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-44-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-44-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-44-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-44-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1047--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-207002r29"></a></p>
+<!--l. 1052--><div class="longtable"> <table id="TBL-45" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-45-1g"><col
+id="TBL-45-1" /></colgroup><colgroup id="TBL-45-2g"><col
+id="TBL-45-2" /><col
+id="TBL-45-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-45-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-45-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-45-1-3"
+class="td11">
+ <!--l. 1052--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-45-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-45-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-45-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-45-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-45-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-45-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-45-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-207003r284"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.18 </span> <a
+ id="x33-20800018"></a>Operation</h5>
+<!--l. 1063--><p class="noindent" ><a
+ id="ref:Operation"></a> An Operation is a member function of a class.
+</p><!--l. 1066--><p class="noindent" >Operations can be used to define a piece of reusable logic. The definition consists of: </p>
+ <ul class="itemize1">
+ <li class="itemize">Arbitrary amount of arguments
+ </li>
+ <li class="itemize">Return type
+ </li>
-</div><hr class="endfigure" />
-<hr class="figure" /><div class="figure"
->
+ <li class="itemize">User code body, which can access the structural part of the containing class (e.g. attributes)</li></ul>
+<!--l. 1073--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">returnType : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;DataType&#x003E;</span></span></span>&#8217;
+ </li>
+ <li class="itemize">arguments : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;name&#x003E;</span><span
+class="ec-lmtt-10">&#x00A0;:</span><span
+class="ec-lmtt-10">&#x00A0;&#x003C;DataType&#x003E;</span></span></span>&#8217;</li></ul>
+<!--l. 1080--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-208001r30"></a></p>
+<!--l. 1085--><div class="longtable"> <table id="TBL-46" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-46-1g"><col
+id="TBL-46-1" /></colgroup><colgroup id="TBL-46-2g"><col
+id="TBL-46-2" /><col
+id="TBL-46-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-46-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-46-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-46-1-3"
+class="td11">
+ <!--l. 1085--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-46-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-46-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-46-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-46-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-46-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-46-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-46-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1091--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-208002r31"></a></p>
+<!--l. 1096--><div class="longtable"> <table id="TBL-47" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-47-1g"><col
+id="TBL-47-1" /></colgroup><colgroup id="TBL-47-2g"><col
+id="TBL-47-2" /><col
+id="TBL-47-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-47-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-47-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-47-1-3"
+class="td11">
+ <!--l. 1096--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-47-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-47-2-3"
+class="td11">
+ <!--l. 1097--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-47-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataClass">DataClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-47-3-3"
+class="td11">
+ <!--l. 1098--><p class="noindent" >A DataClass is a composition of Attributes. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-47-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-47-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-47-8-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-47-8-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1103--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 1105-->
+<div class="lstlisting" id="listing-81"><span class="label"><a
+ id="x33-208003r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">../../../</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">Types</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClassWithOperation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">boolean</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param2</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208013r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithOperation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">uint32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">boolean</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param2</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208023r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClassWithOperation2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208025r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208026r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">usercode1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208027r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">#</span><span
+class="ec-lmtt-9">include</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">___</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">h</span><span
+class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">/*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">User</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">includes</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">here</span><span
+class="ec-lmtt-9">*/</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208028r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208029r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">someHandle</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">voidType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208030r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208031r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208032r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">charPtr</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208033r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">calls</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">casts</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">may</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">need</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">includes</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208034r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">write</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">someHandle</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">param1</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208035r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208036r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-208037r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<a
+ id="x33-208038r285"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.19 </span> <a
+ id="x33-20900019"></a>Port</h5>
+<!--l. 1148--><p class="noindent" ><a
+ id="ref:Port"></a> A Port is an instance of a ProtocolClass and the interface for an ActorClass.
+</p><!--l. 1151--><p class="noindent" >Once a ProtocolClass has been created, it can be used to define actor interfaces. This is accomplished by means of Ports. A
+Port is a declaration that the set of messages defined by its ProtocolClass is now part of the actor&#8217;s interface. It provides
+strong decoupling of ActorClasses from each other, thus enabling easy testability, reusability and deployment of actors to
+different threads or nodes.
+</p>
+<!--l. 1155-->
+<div class="lstlisting" id="listing-82"><span class="label"><a
+ id="x33-209001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Example</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port0</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">send</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">receive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port0</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-209008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+
+
+</div>
+<!--l. 1166--><p class="noindent" >For communication between two actors to take place, a connection must be established between a port on one of the
+actors and a port on the other. One condition is, that both Ports have compatible ProtocolClasses. In most
+cases the Ports simply refer to the same protocol. In addition, a ProtocolClass has an imposed directionality -
+it defines one subset of messages as incoming and the complementary subset as outgoing. Which subset is
+labelled as incoming and outgoing is arbitray, it simply depends on the point of view, that was taken when
+defining. Therefore Ports can be &#8217;regular&#8217; and &#8217;conjugated&#8217;. When two actors communicate by a connected pair of
+Ports, one Port has to be regular and the other conjugated. The ProtocolClass&#8217; incoming messages are on
+one side received by the regular Port and on the other sent by the conjugated Port (outgoing message vice
+versa).
+</p><!--l. 1173--><p class="noindent" >A connection of Ports is denoted by a Binding.
+</p><!--l. 1175--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">conjugated : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">regular</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">conjugated</span></span></span>&#8217;
+ </li>
+ <li class="itemize">multiplicity : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">1..n</span></span></span>&#8217;, &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">*</span></span></span>&#8217;</li></ul>
+<!--l. 1182--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-209009r32"></a></p>
+<!--l. 1187--><div class="longtable"> <table id="TBL-48" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-48-1g"><col
+id="TBL-48-1" /></colgroup><colgroup id="TBL-48-2g"><col
+id="TBL-48-2" /><col
+id="TBL-48-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-48-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-48-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-48-1-3"
+class="td11">
+ <!--l. 1187--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-48-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-2-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-48-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Replication">Replication</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-48-2-3"
+class="td11">
+ <!--l. 1189--><p class="noindent" >Replication is mechanism for multi instantiation for
+ ActorRefs and Ports. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-48-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-48-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-48-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-48-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-48-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-48-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-48-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1195--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-209010r33"></a></p>
+<!--l. 1200--><div class="longtable"> <table id="TBL-49" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-49-1g"><col
+id="TBL-49-1" /></colgroup><colgroup id="TBL-49-2g"><col
+id="TBL-49-2" /><col
+id="TBL-49-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-49-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-1-1"
+class="td11"> Inheriting features: </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:RelayPort">RelayPort</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-1-3"
+class="td11">
+ <!--l. 1200--><p class="noindent" >A RelayPort forwards its messages without exposing them
+ to the internal interface of the ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ExternalEndPort">ExternalEndPort</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-2-3"
+class="td11">
+ <!--l. 1201--><p class="noindent" >A ExternalEndPort is an interface Port, that is made
+ accessible to the internal interface of an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:InternalEndPort">InternalEndPort</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-3-3"
+class="td11">
+ <!--l. 1202--><p class="noindent" >A InternalEndPort is an local Port, that is declared in the
+ internal interface of an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-49-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-4-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-4-3"
+class="td11">
+ <!--l. 1204--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-49-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-5-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-5-3"
+class="td11">
+ <!--l. 1206--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:PortPropertyDialog">PortPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-6-3"
+class="td11">
+ <!--l. 1207--><p class="noindent" >A dialog to edit properties of an Port. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-49-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-7-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-7-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Binding">Binding</a> : endpoint1 </td><td style="white-space:wrap; text-align:left;" id="TBL-49-7-3"
+class="td11">
+ <!--l. 1209--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-8-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Binding">Binding</a> : endpoint2 </td><td style="white-space:wrap; text-align:left;" id="TBL-49-8-3"
+class="td11">
+ <!--l. 1210--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-49-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-10-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-11-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-12-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-49-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-13-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-49-13-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-49-13-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-209011r286"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.20 </span> <a
+ id="x33-21000020"></a>PrimitiveType</h5>
+<!--l. 1221--><p class="noindent" ><a
+ id="ref:PrimitiveType"></a> A PrimitiveType is an abstraction of a target language&#8217;s basic type (e.g. integer or boolean).
+</p><!--l. 1225--><p class="noindent" ><span
+class="ec-lmssbx-10">Properties:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">targetName : &#8217;<span class="obeylines-h"><span class="verb"><span
+class="ec-lmtt-10">&#x003C;identifer</span><span
+class="ec-lmtt-10">&#x00A0;name&#x003E;</span></span></span>&#8217;</li></ul>
+<!--l. 1231--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-210001r34"></a></p>
+<!--l. 1236--><div class="longtable"> <table id="TBL-50" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-50-1g"><col
+id="TBL-50-1" /></colgroup><colgroup id="TBL-50-2g"><col
+id="TBL-50-2" /><col
+id="TBL-50-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-50-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-50-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataType">DataType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-50-1-3"
+class="td11">
+ <!--l. 1236--><p class="noindent" >A DataType can take 4 forms and types data elements like
+ an Attribute or Operation argument. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-50-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-50-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-50-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-50-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-50-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-50-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-50-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1242--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p><!--l. 1244--><p class="noindent" >The eTrice built-in types can be found in the org.eclipse.etrice.modellib project. In most cases the Types.room is already
+included: </p><!--l. 1245-->
+<div class="lstlisting" id="listing-83"><span class="label"><a
+ id="x33-210002r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Follow</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Open</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Declaration</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">F3</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-210003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">../../../</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">Types</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span>
+</div>
+<a
+ id="x33-210004r287"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.21 </span> <a
+ id="x33-21100021"></a>ProtocolClass</h5>
+<!--l. 1255--><p class="noindent" ><a
+ id="ref:ProtocolClass"></a> A ProtocolClass defines messages and is the interface specification for a Port
+</p><!--l. 1258--><p class="noindent" >A ProtocolClass provides a reusable interface specification for ports. It defines a set of incoming and outgoing Messages that
+can be exchanged between two ports. The exact semantics of a message is defined by the CommunicationType. Protocol
+classes have only textual notation.
+</p>
+<!--l. 1262-->
+<div class="lstlisting" id="listing-84"><span class="label"><a
+ id="x33-211001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg2</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">msg4</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1277--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
<a
- id="x31-136002r2"></a>
+ id="x33-211011r35"></a></p>
+<!--l. 1282--><div class="longtable"> <table id="TBL-51" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-51-1g"><col
+id="TBL-51-1" /></colgroup><colgroup id="TBL-51-2g"><col
+id="TBL-51-2" /><col
+id="TBL-51-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-51-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CommunicationType">CommunicationType</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-1-3"
+class="td11">
+ <!--l. 1282--><p class="noindent" >The CommunicationType defines the communication
+ semantics of a ProtocolClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Attribute">Attribute</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-2-3"
+class="td11">
+ <!--l. 1283--><p class="noindent" >An Attribute is a member variable of a class </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Operation">Operation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-3-3"
+class="td11">
+ <!--l. 1284--><p class="noindent" >An Operation is a member function of a class. </p></td>
-<!--l. 748--><p class="noindent" ><img
-src="images/040-HierarchicalFSMTop.jpg" alt="PIC"
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-4-3"
+class="td11">
+ <!--l. 1285--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-51-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-5-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Inheritance">Inheritance</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-5-3"
+class="td11">
+ <!--l. 1287--><p class="noindent" >A class can specify a super class and inherits elements from
+ the super class hierarchy. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-51-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-51-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-10-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-51-10-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-51-10-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1293--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-211012r36"></a></p>
+<!--l. 1298--><div class="longtable"> <table id="TBL-52" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-52-1g"><col
+id="TBL-52-1" /></colgroup><colgroup id="TBL-52-2g"><col
+id="TBL-52-2" /><col
+id="TBL-52-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-52-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-1-1"
+class="td11"> Typecasts: </td><td style="white-space:nowrap; text-align:left;" id="TBL-52-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-52-1-3"
+class="td11">
+ <!--l. 1298--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-52-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SAP">SAP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-52-2-3"
+class="td11">
+ <!--l. 1299--><p class="noindent" >A Service Access Point is similar to a Port, but uses a
+ LayerConnection for wiring. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-52-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SPP">SPP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-52-3-3"
+class="td11">
+ <!--l. 1300--><p class="noindent" >A Service Provision Point is the counterpart of a SAP </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-52-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-4-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-52-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-52-4-3"
+class="td11">
+ <!--l. 1302--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-52-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-52-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-52-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-52-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1307--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
+</p>
+<!--l. 1309-->
+<div class="lstlisting" id="listing-85"><span class="label"><a
+ id="x33-211013r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">basic</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">../../../</span><span
+class="ec-lmtt-9">org</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">eclipse</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etrice</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">modellib</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">c</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">model</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">Types</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211014r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211015r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">asynchronous</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">passing</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">bidirectional</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211016r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClassEvt</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211017r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClassEvt</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">same</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">like</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">above</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">because</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">eventdriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">is</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">default</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211018r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211019r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">means</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">regular</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211020r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">without</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211021r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">simple</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211022r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DMessageData</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">complex</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211023r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211024r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211025r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211026r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">means</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">regular</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211027r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Messages</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">can</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">have</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">the</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">same</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">name</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">to</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">enable</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">symmetric</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">protocols</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211028r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211029r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211030r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211031r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sending</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">complex</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">via</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211032r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DMessageData</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211033r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SomeData</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int16</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211034r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SomeMoreData</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211035r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211036r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211037r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">asynchronous</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">flow</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">unidirectional</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211038r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClassData</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211039r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211040r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">means</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">incoming</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">regular</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211041r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">a</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">signal</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">always</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needs</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211042r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int16</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">simple</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211043r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DMessageData</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">message</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">with</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">complex</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">data</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211044r32"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211045r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211046r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">outgoing</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">messages</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">datadriven</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ports</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">allowed</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-211047r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<a
+ id="x33-211048r288"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.22 </span> <a
+ id="x33-21200022"></a>RelayPort</h5>
+<!--l. 1352--><p class="noindent" ><a
+ id="ref:RelayPort"></a> A RelayPort forwards its messages without exposing them to the internal interface of the ActorClass.
+</p>
+<!--l. 1355-->
+<div class="lstlisting" id="listing-86"><span class="label"><a
+ id="x33-212001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">RelayPortExample</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">relayPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PSimpleProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SimpleActorClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">relayPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">can</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">be</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">directed</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">to</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">an</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Binding</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">relayPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">externalPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">relayPort</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">not</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">available</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">!</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-212014r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1371--><p class="noindent" ><img
+src="images/300-RelayPort.png" alt="PIC"
/>
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;5.2: </span><span
-class="content">Example of a hierarchical finite state machine &#8211; top level</span></div><!--tex4ht:label?: x31-136002r2 -->
+</p><!--l. 1375--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-212015r37"></a></p>
+<!--l. 1380--><div class="longtable"> <table id="TBL-53" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-53-1g"><col
+id="TBL-53-1" /></colgroup><colgroup id="TBL-53-2g"><col
+id="TBL-53-2" /><col
+id="TBL-53-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-53-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-1-1"
+class="td11"> Is a: </td><td style="white-space:nowrap; text-align:left;" id="TBL-53-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-53-1-3"
+class="td11">
+ <!--l. 1380--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-53-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-53-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-3-1"
+class="td11"> </td>
-</div><hr class="endfigure" />
-<hr class="figure" /><div class="figure"
->
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-53-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-53-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-53-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-53-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-53-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1386--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-212016r38"></a></p>
+<!--l. 1391--><div class="longtable"> <table id="TBL-54" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-54-1g"><col
+id="TBL-54-1" /></colgroup><colgroup id="TBL-54-2g"><col
+id="TBL-54-2" /><col
+id="TBL-54-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-54-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-54-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-54-1-3"
+class="td11">
+ <!--l. 1391--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-54-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-54-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-54-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-54-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-54-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-54-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-54-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-212017r289"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.23 </span> <a
+ id="x33-21300023"></a>Replication</h5>
+<!--l. 1402--><p class="noindent" ><a
+ id="ref:Replication"></a> Replication is mechanism for multi instantiation for ActorRefs and Ports.
+</p><!--l. 1405--><p class="noindent" >ActorRefs and Ports can be instantiated several times under the same name. The notation is similar to arrays in programming
+languages.
+</p><!--l. 1407--><p class="noindent" >This possibility provides an elegant way of scaling of your system without redundancy. Note the ActorRef can be arbitray
+complex </p><!--l. 1408-->
+<div class="lstlisting" id="listing-87"><span class="label"><a
+ id="x33-213001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sensor</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Sensor</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">one</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instance</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-213002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sensor</span><span
+class="ec-lmtt-9">[1]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Sensor</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">one</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instance</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-213003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">sensorArray</span><span
+class="ec-lmtt-9">[5]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Sensor</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">five</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instances</span>
+</div>
+<!--l. 1414--><p class="noindent" >Replication can also applied to Ports. One use case is to establish a communication with multiple actors through one port
+interface. </p><!--l. 1415-->
+<div class="lstlisting" id="listing-88"><span class="label"><a
+ id="x33-213004r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">service</span><span
+class="ec-lmtt-9">[5]</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">five</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">instances</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-213005r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">service</span><span
+class="ec-lmtt-9">[*]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">automatic</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">as</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">many</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">as</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">needed</span>
+</div>
+<!--l. 1423--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-213006r39"></a></p>
+<!--l. 1428--><div class="longtable"> <table id="TBL-55" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-55-1g"><col
+id="TBL-55-1" /></colgroup><colgroup id="TBL-55-2g"><col
+id="TBL-55-2" /><col
+id="TBL-55-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-55-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-1-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-55-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-55-1-3"
+class="td11">
+ <!--l. 1428--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-55-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-55-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-55-2-3"
+class="td11">
+ <!--l. 1429--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-55-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-55-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-55-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-55-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-55-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-55-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-55-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-213007r290"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.24 </span> <a
+ id="x33-21400024"></a>SAP</h5>
+<!--l. 1440--><p class="noindent" ><a
+ id="ref:SAP"></a> A Service Access Point is similar to a Port, but uses a LayerConnection for wiring.
+</p><!--l. 1443--><p class="noindent" ><span
+class="ec-lmsso-12">Under construction</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">An actor class can define a Service Provision Point (SPP) to publish a specific service, defined by a protocol
+ class
+ </li>
+ <li class="itemize">An actor class can define a Service Access Point (SAP) if it needs a service, defined by a protocol class
+ </li>
+ <li class="itemize">For a given actor hierarchy, a LayerConnection defines which SAP will be satisfied by (connected to) which
+ SPP</li></ul>
+<!--l. 1452--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-214001r40"></a></p>
+<!--l. 1457--><div class="longtable"> <table id="TBL-56" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-56-1g"><col
+id="TBL-56-1" /></colgroup><colgroup id="TBL-56-2g"><col
+id="TBL-56-2" /><col
+id="TBL-56-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-56-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-56-1-3"
+class="td11">
+ <!--l. 1457--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-56-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-56-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-56-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-56-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-56-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-56-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1463--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-214002r41"></a></p>
+<!--l. 1468--><div class="longtable"> <table id="TBL-57" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-57-1g"><col
+id="TBL-57-1" /></colgroup><colgroup id="TBL-57-2g"><col
+id="TBL-57-2" /><col
+id="TBL-57-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-57-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-57-1-3"
+class="td11">
+ <!--l. 1468--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-57-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-57-2-3"
+class="td11">
+ <!--l. 1470--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-57-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LayerConnection">LayerConnection</a> : SAPoint </td><td style="white-space:wrap; text-align:left;" id="TBL-57-3-3"
+class="td11">
+ <!--l. 1472--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-57-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-57-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-57-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-57-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-57-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-57-8-3"
+class="td11">
+</td></tr>
+</table></div>
<a
- id="x31-136003r3"></a>
+ id="x33-214003r291"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.25 </span> <a
+ id="x33-21500025"></a>SPP</h5>
+<!--l. 1483--><p class="noindent" ><a
+ id="ref:SPP"></a> A Service Provision Point is the counterpart of a SAP
+</p><!--l. 1486--><p class="noindent" ><span
+class="ec-lmsso-10">Under construction</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">An actor class can define a Service Provision Point (SPP) to publish a specific service, defined by a protocol
+ class
+ </li>
+ <li class="itemize">An actor class can define a Service Access Point (SAP) if it needs a service, defined by a protocol class
+ </li>
+ <li class="itemize">For a given actor hierarchy, a LayerConnection defines which SAP will be satisfied by (connected to) which
+ SPP</li></ul>
-<!--l. 753--><p class="noindent" ><img
-src="images/040-HierarchicalFSMInitializing.jpg" alt="PIC"
+<!--l. 1495--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-215001r42"></a></p>
+<!--l. 1500--><div class="longtable"> <table id="TBL-58" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-58-1g"><col
+id="TBL-58-1" /></colgroup><colgroup id="TBL-58-2g"><col
+id="TBL-58-2" /><col
+id="TBL-58-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-58-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-58-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ProtocolClass">ProtocolClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-58-1-3"
+class="td11">
+ <!--l. 1500--><p class="noindent" >A ProtocolClass defines messages and is the interface
+ specification for a Port </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-58-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-58-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-58-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-58-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-58-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-58-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-58-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-58-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1506--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-215002r43"></a></p>
+<!--l. 1511--><div class="longtable"> <table id="TBL-59" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-59-1g"><col
+id="TBL-59-1" /></colgroup><colgroup id="TBL-59-2g"><col
+id="TBL-59-2" /><col
+id="TBL-59-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-59-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-59-1-3"
+class="td11">
+ <!--l. 1511--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-59-2-3"
+class="td11">
+ <!--l. 1512--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-59-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-3-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:SPPPropertyDialog">SPPPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-59-3-3"
+class="td11">
+ <!--l. 1514--><p class="noindent" >A dialog to edit properties of a SPP. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-59-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-4-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LayerConnection">LayerConnection</a> : SPPoint </td><td style="white-space:wrap; text-align:left;" id="TBL-59-4-3"
+class="td11">
+ <!--l. 1516--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-5-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ServiceImplementation">ServiceImplementation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-59-5-3"
+class="td11">
+ <!--l. 1517--><p class="noindent" >The implementation of an Service Provision Point (SPP). </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-59-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-59-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-59-10-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-59-10-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-59-10-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-215003r292"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.26 </span> <a
+ id="x33-21600026"></a>StateMachine</h5>
+<!--l. 1528--><p class="noindent" ><a
+ id="ref:StateMachine"></a> A StateMachine describes the state based, event driven behavior of an ActorClass
+</p><!--l. 1531--><p class="noindent" >In ROOM each actor class can implement its behavior using a state machine. Events occurring at the end ports of
+an actor will be forwarded to and processed by the state machine. Events possibly trigger state transitions.
+<img
+src="images/300-PingPongReceiverFSM.png" alt="PIC"
/>
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;5.3: </span><span
-class="content">Hierarchical finite state machine &#8211; sub state machine of <span
-class="ec-lmsso-10">Initializing</span></span></div><!--tex4ht:label?: x31-136003r3 -->
+</p><!--l. 1536--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-216001r44"></a></p>
+<!--l. 1541--><div class="longtable"> <table id="TBL-60" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-60-1g"><col
+id="TBL-60-1" /></colgroup><colgroup id="TBL-60-2g"><col
+id="TBL-60-2" /><col
+id="TBL-60-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-60-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-60-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Inheritance">Inheritance</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-60-1-3"
+class="td11">
+ <!--l. 1541--><p class="noindent" >A class can specify a super class and inherits elements from
+ the super class hierarchy. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-60-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-60-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-60-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-60-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-60-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-60-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-60-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-60-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1547--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-216002r45"></a></p>
+<!--l. 1552--><div class="longtable"> <table id="TBL-61" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-61-1g"><col
+id="TBL-61-1" /></colgroup><colgroup id="TBL-61-2g"><col
+id="TBL-61-2" /><col
+id="TBL-61-3" /></colgroup>
-</div><hr class="endfigure" />
-<hr class="figure" /><div class="figure"
->
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-61-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-61-1-3"
+class="td11">
+ <!--l. 1552--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-61-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-2-1"
+class="td11"> Is edited by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse25.html#ref:GraphicalBehaviorEditor">GraphicalBehaviorEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-61-2-3"
+class="td11">
+ <!--l. 1554--><p class="noindent" >The GraphicalBehaviorEditor allows to edit the ActorClass&#8217;
+ StateMachine. It is possible to create (hierarchical) states
+ and transitions to model complex behavior in a convenient
+ way. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-61-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-61-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-61-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-61-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-61-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-61-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-216003r293"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.27 </span> <a
+ id="x33-21700027"></a>SubSystemClass</h5>
+<!--l. 1565--><p class="noindent" ><a
+ id="ref:SubSystemClass"></a> The SubSystem is main Actor of an executable part of the system.
+</p><!--l. 1572--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-217001r46"></a></p>
+<!--l. 1577--><div class="longtable"> <table id="TBL-62" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-62-1g"><col
+id="TBL-62-1" /></colgroup><colgroup id="TBL-62-2g"><col
+id="TBL-62-2" /><col
+id="TBL-62-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-62-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-1-3"
+class="td11">
+ <!--l. 1577--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:RelayPort">RelayPort</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-2-3"
+class="td11">
+ <!--l. 1578--><p class="noindent" >A RelayPort forwards its messages without exposing them
+ to the internal interface of the ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SPP">SPP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-3-3"
+class="td11">
+ <!--l. 1579--><p class="noindent" >A Service Provision Point is the counterpart of a SAP </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Binding">Binding</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-4-3"
+class="td11">
+ <!--l. 1580--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-5-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LayerConnection">LayerConnection</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-5-3"
+class="td11">
+ <!--l. 1581--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-6-3"
+class="td11">
+ <!--l. 1582--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-62-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-9-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-10-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-62-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-62-11-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-62-11-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-62-11-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1588--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-217002r47"></a></p>
+<!--l. 1593--><div class="longtable"> <table id="TBL-63" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-63-1g"><col
+id="TBL-63-1" /></colgroup><colgroup id="TBL-63-2g"><col
+id="TBL-63-2" /><col
+id="TBL-63-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-63-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-1-1"
+class="td11"> Typecasts: </td><td style="white-space:nowrap; text-align:left;" id="TBL-63-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemRef">SubSystemRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-63-1-3"
+class="td11">
+ <!--l. 1593--><p class="noindent" >A Sub System Reference is an instance of an
+ SubSystemClass </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-63-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-2-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-63-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-63-2-3"
+class="td11">
+ <!--l. 1595--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-63-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-63-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-63-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-63-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-63-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-63-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-63-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-63-7-3"
+class="td11">
+</td></tr>
+</table></div>
<a
- id="x31-136004r4"></a><a
- id="x34-14600097"></a>
+ id="x33-217003r294"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.1.2.28 </span> <a
+ id="x33-21800028"></a>SubSystemRef</h5>
+<!--l. 1606--><p class="noindent" ><a
+ id="ref:SubSystemRef"></a> A Sub System Reference is an instance of an SubSystemClass
+</p><!--l. 1612--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-218001r48"></a></p>
+<!--l. 1617--><div class="longtable"> <table id="TBL-64" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-64-1g"><col
+id="TBL-64-1" /></colgroup><colgroup id="TBL-64-2g"><col
+id="TBL-64-2" /><col
+id="TBL-64-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-64-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-1-1"
+class="td11"> Is of type: </td><td style="white-space:nowrap; text-align:left;" id="TBL-64-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SubSystemClass">SubSystemClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-64-1-3"
+class="td11">
+ <!--l. 1617--><p class="noindent" >The SubSystem is main Actor of an executable part of the
+ system. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-64-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-64-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-64-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-64-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-64-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-64-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-64-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-64-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1623--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-218002r49"></a></p>
+<!--l. 1628--><div class="longtable"> <table id="TBL-65" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-65-1g"><col
+id="TBL-65-1" /></colgroup><colgroup id="TBL-65-2g"><col
+id="TBL-65-2" /><col
+id="TBL-65-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-65-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-65-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalSystem">LogicalSystem</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-65-1-3"
+class="td11">
+ <!--l. 1628--><p class="noindent" >The top level structural class. It can only contain sub
+ systems using SubSystemRefs. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-65-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-65-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-65-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-65-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-65-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-65-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-65-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-65-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x33-218003r266"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.1.3 </span> <a
+ id="x33-2190003"></a>MappingModel</h4>
+<!--l. 1639--><p class="noindent" ><a
+ id="ref:MappingModel"></a> The MappingModel describes the mapping of elements of the LogicalModel to elements of the PhysicalModel.
+</p><!--l. 1642--><p class="noindent" >It enables the complete decoupling of the LogicalModel and the PhysicalModel, thus providing a maximum flexibility and
+reuse for the models.
+</p><!--l. 1644--><p class="noindent" >The model starts with an import part, where you can import .room and .etphys models. They should contain at least one
+LogicalSystem and one PhysicalSystem. The following mapping entry puts both in relation, meaning that all subsystems and
+actors contained in the hierarchical structure of the LogicalSystem should be executed within the given PhysicalSystem. With
+an SubSystemMapping you can distribute your subsystems to nodes. Afterwards you can map the logical threads within this
+subsystems to physical threads. </p><!--l. 1647-->
+<div class="lstlisting" id="listing-89"><span class="label"><a
+ id="x33-219001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">MappingModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PingPongMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PingPong_Model</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">PingPong</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">GenericPhysicalModel</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">GenericPhysical</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Mapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">LogSys</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PhysSys1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">nodeRef1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">defaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PhysicalThread1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-219011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1663--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x33-219012r50"></a></p>
+<!--l. 1668--><div class="longtable"> <table id="TBL-66" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-66-1g"><col
+id="TBL-66-1" /></colgroup><colgroup id="TBL-66-2g"><col
+id="TBL-66-2" /><col
+id="TBL-66-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-66-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-66-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:LogicalModel">LogicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-66-1-3"
+class="td11">
+ <!--l. 1668--><p class="noindent" >The LogicalModel describes the logical structure and
+ behavior of a ROOM application. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-66-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-66-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:PhysicalModel">PhysicalModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-66-2-3"
+class="td11">
+ <!--l. 1669--><p class="noindent" >The PhysicalModel defines the setup of your nodes with
+ their attributes like threads and mode of execution. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-66-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-66-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-66-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-66-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-66-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-66-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-66-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-66-7-3"
+class="td11">
+</td></tr>
-<!--l. 758--><p class="noindent" ><img
-src="images/040-HierarchicalFSMRunning.jpg" alt="PIC"
- />
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;5.4: </span><span
-class="content">Hierarchical finite state machine &#8211; sub state machine of <span
-class="ec-lmsso-10">Running</span></span></div><!--tex4ht:label?: x31-136004r4 -->
+</table></div>
+<a
+ id="x33-219013r296"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.1.4 </span> <a
+ id="x33-2200004"></a>PhysicalModel</h4>
+<!--l. 1681--><p class="noindent" ><a
+ id="ref:PhysicalModel"></a> The PhysicalModel defines the setup of your nodes with their attributes like threads and mode of execution.
+</p><!--l. 1684--><p class="noindent" >The model describes the physical view of your system: </p><!--l. 1685-->
+<div class="lstlisting" id="listing-90"><span class="label"><a
+ id="x33-220001r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">PhysicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PhysSys1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">server</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ServerNode</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">embeddedClient</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MCNode</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1692--><p class="noindent" >The central element is a NodeClass, that models the executional aspects of a device (node). At first, it can be associated
+with a RuntimeClass, which specifies if your device supports multiple threads. &#8217;priomin&#8217; and &#8217;priomax&#8217; define the range of
+priorities, that can be assigned to threads.
+</p>
+<!--l. 1696-->
+<div class="lstlisting" id="listing-91"><span class="label"><a
+ id="x33-220005r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">NodeClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220006r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">RuntimeClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220007r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomin</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220008r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomax</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220009r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220010r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Thread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">definitions</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">...</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220011r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220012r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220013r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">RuntimeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">RuntimeClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220014r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">multiThreaded</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">or</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">singleThreaded</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220015r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1710--><p class="noindent" >A thread has to specify the following properties: </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmssbx-10">execmode</span>: defines the execution type, see more at ExecutionType
+ <ul class="itemize2">
+ <li class="itemize">blocked: message-driven only, thread wakes up if message arrives and is put to sleep after all action is
+ done
+ </li>
+ <li class="itemize">polled: data-driven only, thread is executed cyclic. The &#8217;interval&#8217; property is mandatory in this case.
+ </li>
+ <li class="itemize">mixed: combines both execution types</li></ul>
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">msgblocksize</span>: the size in bytes of a message
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">msgpoolsize</span>: the amount of messages, that the thread&#8217;s message queue can store</li></ul>
+<!--l. 1721--><p class="noindent" >Note: &#8217;msgblocksize&#8217; and &#8217;msgpoolsize&#8217; also apply to the polled execution due the internal implementation via
+message passing. The size of the message queue can be calculated as follows: msgpoolsize * msgblocksize
+bytes
+</p>
+<!--l. 1724-->
+<div class="lstlisting" id="listing-92"><span class="label"><a
+ id="x33-220016r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DefaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ThreadMessaging</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220017r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220018r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220019r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220020r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220021r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220022r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220023r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220024r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Thread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ThreadPolled</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220025r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220026r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220027r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">interval</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">100</span><span
+class="ec-lmssbx-10x-x-90">ms</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220028r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220029r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">32</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220030r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x33-220031r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 1746--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x33-220032r51"></a></p>
+<!--l. 1751--><div class="longtable"> <table id="TBL-67" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-67-1g"><col
+id="TBL-67-1" /></colgroup><colgroup id="TBL-67-2g"><col
+id="TBL-67-2" /><col
+id="TBL-67-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-67-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-1-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-67-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MappingModel">MappingModel</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-67-1-3"
+class="td11">
+ <!--l. 1751--><p class="noindent" >The MappingModel describes the mapping of elements of
+ the LogicalModel to elements of the PhysicalModel. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-67-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-67-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-67-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-67-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-67-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-67-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-67-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-67-6-3"
+class="td11">
+</td></tr>
-</div><hr class="endfigure" />
+</table></div>
-<!--l. 106--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch6.html" >next</a>] [<a
-href="etrice-docse23.html" >prev</a>] [<a
-href="etrice-docse23.html#tailetrice-docse23.html" >prev-tail</a>] [<a
+<!--l. 1761--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse25.html" >next</a>] [<a
+href="etrice-docch7.html" >prev</a>] [<a
+href="etrice-docch7.html#tailetrice-docch7.html" >prev-tail</a>] [<a
href="etrice-docse24.html" >front</a>] [<a
-href="etrice-docch5.html#etrice-docse24.html" >up</a>] </p></div>
-<!--l. 106--><p class="noindent" ><a
+href="etrice-docch7.html#etrice-docse24.html" >up</a>] </p></div>
+<!--l. 1761--><p class="noindent" ><a
id="tailetrice-docse24.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html
index 949fa152d..25bacd30d 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html
@@ -4,102 +4,754 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Model Navigation</title>
+<head><title>ModelEditors</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1761--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse26.html" >next</a>] [<a
-href="etrice-docch6.html" >prev</a>] [<a
-href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
+href="etrice-docse24.html" >prev</a>] [<a
+href="etrice-docse24.html#tailetrice-docse24.html" >prev-tail</a>] [<a
href="#tailetrice-docse25.html">tail</a>] [<a
-href="etrice-docch6.html#etrice-docse25.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">6.1 </span> <a
- id="x33-1380001"></a>Model Navigation</h3>
-<!--l. 3--><p class="noindent" >In eTrice the primary source of the models is text based. However, for convenience the structure and the behavior of structure
-classes can be edited with graphical editors using the standard ROOM notation. Further. the textual models can be
-structured hierarchically using the import statement.
-</p><!--l. 7--><p class="noindent" >So jumping between textual models and switching to and between diagrams and back to the textual representation is a
-frequent task. Therefore in this chapter we want to show the various possibilities to navigate the models.
-<a
- id="x33-138001r186"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">6.1.1 </span> <a
- id="x33-1390001"></a>From Model to Behavior to Structure</h4>
-<!--l. 12--><p class="noindent" >There are three global key bindings (cf. the eTrice main menu item):
+href="etrice-docch7.html#etrice-docse25.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">7.2 </span> <a
+ id="x34-2210002"></a>ModelEditors</h3>
+<!--l. 1762--><p class="noindent" ><a
+ id="ref:ModelEditors"></a> All aspects of the ROOMLanguage can be edited by full-blown textual editors. In addition, graphical editing is provided for
+the structural and behavioral part of ActorClasses.
+</p><!--l. 1767--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-221001r52"></a></p>
+<!--l. 1772--><div class="longtable"> <table id="TBL-68" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-68-1g"><col
+id="TBL-68-1" /></colgroup><colgroup id="TBL-68-2g"><col
+id="TBL-68-2" /><col
+id="TBL-68-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-68-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-68-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:TextualROOMEditor">TextualROOMEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-68-1-3"
+class="td11">
+ <!--l. 1772--><p class="noindent" >Textual model editor </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-68-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-68-2-3"
+class="td11">
+ <!--l. 1773--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-68-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalBehaviorEditor">GraphicalBehaviorEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-68-3-3"
+class="td11">
+ <!--l. 1774--><p class="noindent" >The GraphicalBehaviorEditor allows to edit the ActorClass&#8217;
+ StateMachine. It is possible to create (hierarchical) states
+ and transitions to model complex behavior in a convenient
+ way. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-68-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-68-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-68-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-68-8-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-68-8-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-221002r297"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.2.1 </span> <a
+ id="x34-2220001"></a>GraphicalBehaviorEditor</h4>
+<!--l. 1780--><p class="noindent" ><a
+ id="ref:GraphicalBehaviorEditor"></a> The GraphicalBehaviorEditor allows to edit the ActorClass&#8217; StateMachine. It is possible to create (hierarchical) states and
+transitions to model complex behavior in a convenient way.
</p>
- <ul class="itemize1">
- <li class="itemize">Alt+M &#8211; jump to the textual model
+<div class="center"
+>
+<!--l. 1783--><p class="noindent" >
+
+</p><!--l. 1784--><p class="noindent" ><img
+src="images/300-GraphicalBehaviorEditor.png" alt="PIC"
+ /></p></div>
+<!--l. 1789--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-222001r53"></a></p>
+<!--l. 1794--><div class="longtable"> <table id="TBL-69" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-69-1g"><col
+id="TBL-69-1" /></colgroup><colgroup id="TBL-69-2g"><col
+id="TBL-69-2" /><col
+id="TBL-69-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-69-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-1-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-69-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:StateMachine">StateMachine</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-69-1-3"
+class="td11">
+ <!--l. 1794--><p class="noindent" >A StateMachine describes the state based, event driven
+ behavior of an ActorClass </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-69-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-69-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-69-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-69-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-69-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-69-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-69-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-69-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-222002r299"></a>
- </li>
- <li class="itemize">Alt+B &#8211; jump to the behavior diagram of the current actor class (determined by the cursor or selection position)
- </li>
- <li class="itemize">Alt+S &#8211; jump to the structure of the current structure class (determined by the cursor or selection position)</li></ul>
-<!--l. 20--><p class="noindent" >Jumping from a diagram to the textual model using Alt+M will open (or bring to the front) an editor with the ROOM file
-and will select the structure class of the diagram in the text.
-</p><!--l. 23--><p class="noindent" >The other way round, the position of the cursor or selection in the ROOM file is relevant. If it is enclosed by an actor class
-then for Alt+B a state machine editor is opened. If it is a structure class and Alt+S is pressed then the structure editor is
-opened for this class.
-</p><!--l. 27--><p class="noindent" >As an alternative the context menu of an actor class can be used to open the associated structure or behavior
-diagram.
-</p><!--l. 29--><p class="noindent" >Switching from the behavior to the structure is performed on Alt+S and vice versa on Alt+B.
-<a
- id="x33-139001r193"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.2.2 </span> <a
+ id="x34-2230002"></a>GraphicalStructureEditor</h4>
+<!--l. 1806--><p class="noindent" ><a
+ id="ref:GraphicalStructureEditor"></a> The Structure Editor allows to edit the ActorClass&#8217; Structure in a convenient way. It is possible to create and arrange actor
+references and ports and to create bindings and layer connections.
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.1.2 </span> <a
- id="x33-1400002"></a>Model Navigation</h4>
-<!--l. 33--><p class="noindent" >Model file paths in import statements are hyper links that can be clicked with the Ctrl key pressed.
-</p><!--l. 35--><p class="noindent" ><img
-src="images/041-open-declaration.jpg" alt="PIC"
- />
-</p><!--l. 37--><p class="noindent" >An alternative is to use F3 (open declaration) with the cursor inside the file name.
-</p><!--l. 39--><p class="noindent" >In a similar way references to model elements can be navigated using F3 or Ctrl-Click, e.g. the protocol class of a port or the
-actor class of an actor reference or the data class of an attribute and many more.
-</p><!--l. 42--><p class="noindent" >The "quick outline" is a means that allows fast navigation in a single model. Ctrl-O opens a window similar to the outline
-view. Typing text (with possible wild cards * and ?) filters the view and selecting an element and pressing return locates the
-element in the editor.
-</p><!--l. 46--><p class="noindent" >Ctrl-Shift-G searches references to model elements. E.g. "Find references" for a selected actor class lists all locations in
-ROOM models and diagrams that refer to this actor class.
-</p><!--l. 49--><p class="noindent" >Using the outline, also imported elements can be browsed and navigated.
-<a
- id="x33-140001r194"></a>
+<div class="center"
+>
+<!--l. 1809--><p class="noindent" >
+
+</p><!--l. 1810--><p class="noindent" ><img
+src="images/300-GraphicalStructureEditor.png" alt="PIC"
+ /></p></div>
+<!--l. 1815--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-223001r54"></a></p>
+<!--l. 1820--><div class="longtable"> <table id="TBL-70" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-70-1g"><col
+id="TBL-70-1" /></colgroup><colgroup id="TBL-70-2g"><col
+id="TBL-70-2" /><col
+id="TBL-70-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-70-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:StructureEditorPalette">StructureEditorPalette</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-1-3"
+class="td11">
+ <!--l. 1820--><p class="noindent" >The palette creates central structural elements of an
+ ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:ActorRefPropertyDialog">ActorRefPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-2-3"
+class="td11">
+ <!--l. 1821--><p class="noindent" >A dialog to edit properties of an ActorRef. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:PortPropertyDialog">PortPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-3-3"
+class="td11">
+ <!--l. 1822--><p class="noindent" >A dialog to edit properties of an Port. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:SPPPropertyDialog">SPPPropertyDialog</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-4-3"
+class="td11">
+ <!--l. 1823--><p class="noindent" >A dialog to edit properties of a SPP. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-70-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-5-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-5-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:ActorClass">ActorClass</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-5-3"
+class="td11">
+ <!--l. 1825--><p class="noindent" >The actor is the basic structural building block for building
+ systems with ROOM. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-6-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-6-3"
+class="td11">
+ <!--l. 1826--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-7-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-7-3"
+class="td11">
+ <!--l. 1827--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-8-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:SAP">SAP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-8-3"
+class="td11">
+ <!--l. 1828--><p class="noindent" >A Service Access Point is similar to a Port, but uses a
+ LayerConnection for wiring. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-9-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:Binding">Binding</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-9-3"
+class="td11">
+ <!--l. 1829--><p class="noindent" >A Binding connects two Ports with each other. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-10-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-10-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:LayerConnection">LayerConnection</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-10-3"
+class="td11">
+ <!--l. 1830--><p class="noindent" >A LayerConnection associates a SPP to an ActorRef,
+ resulting in an connection of all SAPs on its instance
+ hierarchy. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-70-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-11-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-12-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-13-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-14-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-70-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-70-15-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-70-15-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-70-15-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-223002r295"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.2.2.1 </span> <a
+ id="x34-2240001"></a>ActorRefPropertyDialog</h5>
+<!--l. 1842--><p class="noindent" ><a
+ id="ref:ActorRefPropertyDialog"></a> A dialog to edit properties of an ActorRef.
+</p><!--l. 1845--><p class="noindent" >The dialog is used to edit an existing ActorRef of an ActorClass. It is also shown when creating a new one.
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.1.3 </span> <a
- id="x33-1410003"></a>Navigating Behavior Diagrams</h4>
-<!--l. 53--><p class="noindent" >The behavior editor displays a hierarchical state machine. States can have a sub state graph and thus the hierarchy of states
-and state graphs forms a tree like structure. The eTrice behavior editor always shows only one level of the hierarchy. The
-editor switches to the sub state graph of a state by double clicking it. The path of the currently displayed
-state graph is indicated in the upper right corner using state names separated by slashes (/). A single slash
-indicates the top level. Double click into the empty space of a state graph will switch to the state graph one level
-up.
-</p><!--l. 60--><p class="noindent" >A double click on a transition (or its label), a transition point or a choice point opens their property dialog. A
-double click on a state opens its property dialog if it has no sub state graph or it switches to its sub state
-graph.
-<a
- id="x33-141001r195"></a>
+<div class="center"
+>
+<!--l. 1846--><p class="noindent" >
+
+</p><!--l. 1847--><p class="noindent" ><img
+src="images/300-ActorRefDialog.png" alt="PIC"
+ /></p></div>
+<!--l. 1852--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+
+
+<a
+ id="x34-224001r55"></a></p><!--l. 1857--><div class="longtable"> <table id="TBL-71" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-71-1g"><col
+id="TBL-71-1" /></colgroup><colgroup id="TBL-71-2g"><col
+id="TBL-71-2" /><col
+id="TBL-71-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-71-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-1-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-71-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:ActorRef">ActorRef</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-71-1-3"
+class="td11">
+ <!--l. 1857--><p class="noindent" >An ActorRef is an instance of an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-71-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-71-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-71-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-71-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-71-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-71-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-71-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-71-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1863--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x34-224002r56"></a></p>
+<!--l. 1868--><div class="longtable"> <table id="TBL-72" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-72-1g"><col
+id="TBL-72-1" /></colgroup><colgroup id="TBL-72-2g"><col
+id="TBL-72-2" /><col
+id="TBL-72-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-72-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-72-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-72-1-3"
+class="td11">
+ <!--l. 1868--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-72-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-72-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-72-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-72-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-72-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-72-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-72-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-72-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-224003r301"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.2.2.2 </span> <a
+ id="x34-2250002"></a>PortPropertyDialog</h5>
+<!--l. 1879--><p class="noindent" ><a
+ id="ref:PortPropertyDialog"></a> A dialog to edit properties of an Port.
+</p><!--l. 1882--><p class="noindent" >The dialog is used to edit an existing Port of an ActorClass. It is also shown when creating a new one. </p>
+<div class="center"
+>
+<!--l. 1883--><p class="noindent" >
+
+</p><!--l. 1884--><p class="noindent" ><img
+src="images/300-PortDialog.png" alt="PIC"
+ /></p></div>
+<!--l. 1889--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-225001r57"></a></p>
+<!--l. 1894--><div class="longtable"> <table id="TBL-73" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-73-1g"><col
+id="TBL-73-1" /></colgroup><colgroup id="TBL-73-2g"><col
+id="TBL-73-2" /><col
+id="TBL-73-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-73-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-1-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-73-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:Port">Port</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-73-1-3"
+class="td11">
+ <!--l. 1894--><p class="noindent" >A Port is an instance of a ProtocolClass and the interface
+ for an ActorClass. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-73-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-73-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-73-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-73-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-73-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-73-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-73-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-73-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1900--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x34-225002r58"></a></p>
+<!--l. 1905--><div class="longtable"> <table id="TBL-74" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-74-1g"><col
+id="TBL-74-1" /></colgroup><colgroup id="TBL-74-2g"><col
+id="TBL-74-2" /><col
+id="TBL-74-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-74-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-74-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-74-1-3"
+class="td11">
+ <!--l. 1905--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-74-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-74-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-74-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-74-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-74-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-74-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-74-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-74-6-3"
+class="td11">
+</td></tr>
+
+
+</table></div>
+<a
+ id="x34-225003r302"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.2.2.3 </span> <a
+ id="x34-2260003"></a>SPPPropertyDialog</h5>
+<!--l. 1916--><p class="noindent" ><a
+ id="ref:SPPPropertyDialog"></a> A dialog to edit properties of a SPP.
+</p><!--l. 1919--><p class="noindent" >The dialog is used to edit an existing SPP of an ActorClass. It is also shown when creating a new one. </p>
+<div class="center"
+>
+<!--l. 1920--><p class="noindent" >
+
+</p><!--l. 1921--><p class="noindent" ><img
+src="images/300-SPPDialog.png" alt="PIC"
+ /></p></div>
+<!--l. 1926--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-226001r59"></a></p>
+<!--l. 1931--><div class="longtable"> <table id="TBL-75" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-75-1g"><col
+id="TBL-75-1" /></colgroup><colgroup id="TBL-75-2g"><col
+id="TBL-75-2" /><col
+id="TBL-75-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-75-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-1-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-75-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:SPP">SPP</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-75-1-3"
+class="td11">
+ <!--l. 1931--><p class="noindent" >A Service Provision Point is the counterpart of a SAP </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-75-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-75-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-75-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-75-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-75-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-75-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-75-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-75-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 1937--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x34-226002r60"></a></p>
+<!--l. 1942--><div class="longtable"> <table id="TBL-76" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-76-1g"><col
+id="TBL-76-1" /></colgroup><colgroup id="TBL-76-2g"><col
+id="TBL-76-2" /><col
+id="TBL-76-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-76-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-76-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-76-1-3"
+class="td11">
+ <!--l. 1942--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-76-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-76-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-76-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-76-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-76-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-76-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-76-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-76-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-226003r303"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.2.2.4 </span> <a
+ id="x34-2270004"></a>StructureEditorPalette</h5>
+<!--l. 1953--><p class="noindent" ><a
+ id="ref:StructureEditorPalette"></a> The palette creates central structural elements of an ActorClass.
+</p><!--l. 1956--><p class="noindent" >Selecting an entry from the palette and clicking into the diagram, creates the element at the current position.
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.1.4 </span> <a
- id="x33-1420004"></a>Navigating Structure Diagrams</h4>
-<!--l. 65--><p class="noindent" >The context menu of a structure diagram (invoked in the empty space inside the bounding rectangle) contains an entry
-"Open Class Behavior" which opens the behavior diagram (same as Alt+B).
-</p><!--l. 68--><p class="noindent" >The context menu of an actor reference contains entries: "Open Ref Structure" and "Open Ref Behavior" that allow to open
-the associated diagrams of the referenced actor class.
+<div class="center"
+>
+<!--l. 1957--><p class="noindent" >
+
+</p><!--l. 1958--><p class="noindent" ><img
+src="images/300-StructurePalette.png" alt="PIC"
+ /></p></div>
+<!--l. 1964--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x34-227001r61"></a></p>
+<!--l. 1969--><div class="longtable"> <table id="TBL-77" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-77-1g"><col
+id="TBL-77-1" /></colgroup><colgroup id="TBL-77-2g"><col
+id="TBL-77-2" /><col
+id="TBL-77-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-77-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-77-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GraphicalStructureEditor">GraphicalStructureEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-77-1-3"
+class="td11">
+ <!--l. 1969--><p class="noindent" >The Structure Editor allows to edit the ActorClass&#8217;
+ Structure in a convenient way. It is possible to create and
+ arrange actor references and ports and to create bindings
+ and layer connections. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-77-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-77-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-77-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-77-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-77-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-77-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-77-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-77-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-227002r300"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.2.3 </span> <a
+ id="x34-2280003"></a>TextualROOMEditor</h4>
+<!--l. 1980--><p class="noindent" ><a
+ id="ref:TextualROOMEditor"></a> Textual model editor
</p>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+<div class="center"
+>
+<!--l. 1983--><p class="noindent" >
+
+</p><!--l. 1984--><p class="noindent" ><img
+src="images/300-TextualROOMEditor.png" alt="PIC"
+ /></p></div>
+<!--l. 1989--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x34-228001r62"></a></p>
+<!--l. 1994--><div class="longtable"> <table id="TBL-78" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-78-1g"><col
+id="TBL-78-1" /></colgroup><colgroup id="TBL-78-2g"><col
+id="TBL-78-2" /><col
+id="TBL-78-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-78-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-78-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:OutlineView">OutlineView</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-78-1-3"
+class="td11">
+ <!--l. 1994--><p class="noindent" >Displays an overview of all elements in the textual editor. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-78-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-2-1"
+class="td11"> Edits: </td><td style="white-space:nowrap; text-align:left;" id="TBL-78-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:ROOMLanguage">ROOMLanguage</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-78-2-3"
+class="td11">
+ <!--l. 1996--><p class="noindent" >The Real Time Object Oriented Modeling (ROOM). </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-78-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-78-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-78-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-78-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-78-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-78-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-78-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-78-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x34-228002r304"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.2.3.1 </span> <a
+ id="x34-2290001"></a>OutlineView</h5>
+<!--l. 2008--><p class="noindent" ><a
+ id="ref:OutlineView"></a> Displays an overview of all elements in the textual editor.
+</p><!--l. 2011--><p class="noindent" >Shows the structure of the current opened model in the textual editor. Select the &#8217;Link with Editor&#8217; option to synchronize the
+selection of elements between editor and outline view. This enables a convenient navigation.
+</p>
+<div class="center"
+>
+<!--l. 2013--><p class="noindent" >
+
+</p><!--l. 2014--><p class="noindent" ><img
+src="images/300-OutlineView.png" alt="PIC"
+ /></p></div>
+<!--l. 2020--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x34-229001r63"></a></p>
+<!--l. 2025--><div class="longtable"> <table id="TBL-79" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-79-1g"><col
+id="TBL-79-1" /></colgroup><colgroup id="TBL-79-2g"><col
+id="TBL-79-2" /><col
+id="TBL-79-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-79-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-79-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:TextualROOMEditor">TextualROOMEditor</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-79-1-3"
+class="td11">
+ <!--l. 2025--><p class="noindent" >Textual model editor </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-79-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-79-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-79-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-4-1"
+class="td11"> </td>
+
+
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-79-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-79-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-79-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-79-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-79-6-3"
+class="td11">
+</td></tr>
+</table></div>
+
+
+<!--l. 2035--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse26.html" >next</a>] [<a
-href="etrice-docch6.html" >prev</a>] [<a
-href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
+href="etrice-docse24.html" >prev</a>] [<a
+href="etrice-docse24.html#tailetrice-docse24.html" >prev-tail</a>] [<a
href="etrice-docse25.html" >front</a>] [<a
-href="etrice-docch6.html#etrice-docse25.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+href="etrice-docch7.html#etrice-docse25.html" >up</a>] </p></div>
+<!--l. 2035--><p class="noindent" ><a
id="tailetrice-docse25.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html
index 70d527eac..14b872d47 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html
@@ -4,151 +4,258 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>eTrice Java Projects</title>
+<head><title>CodeGenerators</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse27.html" >next</a>] [<a
+<!--l. 2035--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch8.html" >next</a>] [<a
href="etrice-docse25.html" >prev</a>] [<a
href="etrice-docse25.html#tailetrice-docse25.html" >prev-tail</a>] [<a
href="#tailetrice-docse26.html">tail</a>] [<a
-href="etrice-docch6.html#etrice-docse26.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">6.2 </span> <a
- id="x34-1430002"></a>eTrice Java Projects</h3>
-<!--l. 3--><p class="noindent" >There are two flavors of eTrice Java projects. The first one uses the Eclipse JDT build and the second one uses Maven to
-build and deploy an eTrice application.
-</p><!--l. 6--><p class="noindent" >The kind of build can be selected in the "Empty eTrice Java project" wizard.
+href="etrice-docch7.html#etrice-docse26.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">7.3 </span> <a
+ id="x35-2300003"></a>CodeGenerators</h3>
+<!--l. 2036--><p class="noindent" ><a
+ id="ref:CodeGenerators"></a>
+</p><!--l. 2040--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
<a
- id="x34-143001r196"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">6.2.1 </span> <a
- id="x34-1440001"></a>Eclipse JDT Build</h4>
-<!--l. 10--><p class="noindent" >If this kind of build is chosen the eTrice new project wizard requires the <span
-class="ec-lmtt-10">org.eclipse.etrice.runtime.java </span>project in the
-workspace and adds a dependency to it.
-</p><!--l. 13--><p class="noindent" >If the project uses other eTrice projects (e.g. the <span
-class="ec-lmtt-10">org.eclipse.etrice.modellib.java</span>) they have to be added to the Java
-build path as well.
-</p><!--l. 16--><p class="noindent" >The eTrice new project wizard creates the following files for the JDT build </p>
- <ul class="itemize1">
- <li class="itemize">a ROOM model file with exemplary classes
- </li>
- <li class="itemize">a simple physical model
- </li>
- <li class="itemize">a model mapping the logical entities of the ROOM model to the physical entities
- </li>
- <li class="itemize">a launch configuration that invokes the eTrice Java code generator for the new models
- </li>
- <li class="itemize">a launch configuration that launches the main method of the generated code</li></ul>
-<!--l. 25--><p class="noindent" >If "build automatically" is chosen the newly created model can be generated and launched with just two clicks.
+ id="x35-230001r64"></a></p>
+<!--l. 2045--><div class="longtable"> <table id="TBL-80" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-80-1g"><col
+id="TBL-80-1" /></colgroup><colgroup id="TBL-80-2g"><col
+id="TBL-80-2" /><col
+id="TBL-80-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-80-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-80-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CCodeGenerator">CCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-80-1-3"
+class="td11">
+ <!--l. 2046--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-80-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-80-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:JavaCodeGenerator">JavaCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-80-2-3"
+class="td11">
+ <!--l. 2047--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-80-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-80-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-80-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-80-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-80-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-80-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-80-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-80-7-3"
+class="td11">
+</td></tr>
+</table></div>
<a
- id="x34-144001r198"></a>
+ id="x35-230002r305"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.3.1 </span> <a
+ id="x35-2310001"></a>CCodeGenerator</h4>
+<!--l. 2052--><p class="noindent" ><a
+ id="ref:CCodeGenerator"></a>
+</p><!--l. 2057--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x35-231001r65"></a></p>
+<!--l. 2062--><div class="longtable"> <table id="TBL-81" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-81-1g"><col
+id="TBL-81-1" /></colgroup><colgroup id="TBL-81-2g"><col
+id="TBL-81-2" /><col
+id="TBL-81-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-81-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-81-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GenerationOptions">GenerationOptions</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-81-1-3"
+class="td11">
+ <!--l. 2062--><p class="noindent" >Mechanism to adjust the generation. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-81-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MSCLogging">MSCLogging</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-81-2-3"
+class="td11">
+ <!--l. 2063--><p class="noindent" >Runtime logger for event-driven Messages, represented as
+ a Message Sequence Chart. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-81-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DataLogging">DataLogging</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-81-3-3"
+class="td11">
+ <!--l. 2064--><p class="noindent" >Runtime logger for data-driven Messages with primtive
+ data. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-81-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-81-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-81-8-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-81-8-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-81-8-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x35-231002r306"></a>
+<h5 class="subsubsectionHead"><span class="titlemark">7.3.1.1 </span> <a
+ id="x35-2320001"></a>DataLogging</h5>
+<!--l. 2076--><p class="noindent" ><a
+ id="ref:DataLogging"></a> Runtime logger for data-driven Messages with primtive data.
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.2.2 </span> <a
- id="x34-1450002"></a>Maven Build</h4>
-<!--l. 29--><p class="noindent" >The Maven integration of eTrice requires the m2eclipse plug-in installed. The dependencies are then managed by the Maven
-pom.xml but the m2e builder maps them as JDT visible dependencies to the project class path.
-</p><!--l. 32--><p class="noindent" >The eTrice new project wizard creates the following files for the Maven build </p>
<ul class="itemize1">
- <li class="itemize">a ROOM model file with exemplary classes
- </li>
- <li class="itemize">a simple physical model
+ <li class="itemize">Annotation of one DataLogging per SubSystemClass
</li>
- <li class="itemize">a model mapping the logical entities of the ROOM model to the physical entities
+ <li class="itemize">Specifiy complete port instance path starting from LogicalSystem
</li>
- <li class="itemize">a launch configuration that invokes the eTrice Java code generator for the new models
- </li>
- <li class="itemize">a launch configuration that builds and deploys the generated application
+ <li class="itemize">Port have to conjugated and data-driven
</li>
- <li class="itemize">a launch configuration that launches the deployed jar file
+ <li class="itemize">Activates logging of all messages having primitive or enum typed data
+ </li>
+ <li class="itemize">Seperate multiple port instance path through commas
</li>
- <li class="itemize">a launch configuration that launches the main method of the generated code (for convenience or if the generated
- code should be launched in debug mode)</li></ul>
-<!--l. 44--><p class="noindent" >After the new project is created the m2e builder creates the dependencies in the project class path. Therefore also JDT can
-compile and launch the application.
+ <li class="itemize">Within pathlist do NOT use any whitespace (e.g. space or newline)</li></ul>
+<!--l. 2090--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
<a
- id="Q1-34-200"></a>
-</p>
-<h5 class="likesubsubsectionHead"><a
- id="x34-1460002"></a>Example</h5>
-<!--l. 49--><p class="noindent" >As an example we want to use the <a
-href="etrice-docse8.html#x12-470006">Ping Pong Tutorial (Java and C)<!--tex4ht:ref: sec:ping_pong_tutorial --></a>.
-</p><!--l. 51--><p class="noindent" >For this example we start with an empty workspace. We create a new eTrice project using the "Empty eTrice Java Project"
-wizard which results in a workspace looking like:
-</p><!--l. 55--><p class="noindent" ><img
-src="images/042-after-project-creation.png" alt="PIC"
- />
-</p><!--l. 57--><p class="noindent" >The only difference to the first version of this example is the resolution of the <span
-class="ec-lmtt-10">TimingService </span>using a classpath
-scheme:
+ id="x35-232001r66"></a></p>
+<!--l. 2095--><div class="longtable"> <table id="TBL-82" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-82-1g"><col
+id="TBL-82-1" /></colgroup><colgroup id="TBL-82-2g"><col
+id="TBL-82-2" /><col
+id="TBL-82-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-82-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-82-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="etrice-docse24.html#ref:Annotation">Annotation</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-82-1-3"
+class="td11">
+ <!--l. 2095--><p class="noindent" >An Annotation can be attached to a ROOM classes to
+ apply the properties of its AnnotationType. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-82-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-82-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-82-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-82-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-82-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-82-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-82-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-82-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 2101--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x35-232002r67"></a></p>
+<!--l. 2106--><div class="longtable"> <table id="TBL-83" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-83-1g"><col
+id="TBL-83-1" /></colgroup><colgroup id="TBL-83-2g"><col
+id="TBL-83-2" /><col
+id="TBL-83-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-83-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-83-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CCodeGenerator">CCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-83-1-3"
+class="td11">
+ <!--l. 2107--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-83-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-83-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-83-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-83-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-83-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-83-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-83-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-83-6-3"
+class="td11">
+</td></tr>
+</table></div>
+<!--l. 2111--><p class="noindent" ><span
+class="ec-lmssbx-10">Example:</span>
</p>
-<!--l. 60-->
-<div class="lstlisting" id="listing-61"><span class="label"><a
- id="x34-146001r1"></a></span><span
+<!--l. 2113-->
+<div class="lstlisting" id="listing-93"><span class="label"><a
+ id="x35-232003r1"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">import</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">room</span><span
class="ec-lmtt-9">.</span><span
class="ec-lmtt-9">basic</span><span
class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">service</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timing</span><span
+class="ec-lmtt-9">annotations</span><span
class="ec-lmtt-9">.*</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">from</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">classpath</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">TimingService</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">"</span>
-</div>
-<!--l. 64--><p class="noindent" >It is possible to navigate to the imported model:
-</p><!--l. 66--><p class="noindent" ><img
-src="images/042-navigate-import.png" alt="PIC"
- />
-</p><!--l. 68--><p class="noindent" >but the model is read-only. It is found on the class path of the project which is derived from the project pom&#8217;s
-dependencies:
-</p>
-<!--l. 70-->
-<div class="lstlisting" id="listing-62"><span class="label"><a
- id="x34-146002r1"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">dependency</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146003r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146004r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">../../</span><span
class="ec-lmtt-9">org</span><span
class="ec-lmtt-9">.</span><span
class="ec-lmtt-9">eclipse</span><span
@@ -157,2497 +264,345 @@ class="ec-lmtt-9">etrice</span><span
class="ec-lmtt-9">.</span><span
class="ec-lmtt-9">modellib</span><span
class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146005r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">c</span><span
class="ec-lmtt-9">/</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146006r5"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">dependency</span><span
-class="ec-lmtt-9">&#x003E;</span>
-</div>
-<!--l. 78--><p class="noindent" >Since during the generate-sources life cycle phase the same dependency is needed we have to add it also to our eTrice
-generator plug-in:
-</p>
-<!--l. 81-->
-<div class="lstlisting" id="listing-63"><span class="label"><a
- id="x34-146007r1"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">build</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146008r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">plugins</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146009r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">plugin</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146010r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146011r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">generator</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146012r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146013r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">[...]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146014r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">dependencies</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146015r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">put</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">modellib</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">on</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">class</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">path</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">to</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">allow</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">resolution</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">models</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generator</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146016r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">dependency</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146017r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146018r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">modellib</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146019r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146020r14"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">dependency</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146021r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">dependencies</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146022r16"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">plugin</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146023r17"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">plugins</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146024r18"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">build</span><span
-class="ec-lmtt-9">&#x003E;</span>
-</div>
-<!--l. 102--><p class="noindent" >Now we start the build, e.g. by entering <span
-class="ec-lmtt-10">mvn clean package </span>on the command line or by launching Maven using m2e.
-Maven will download all needed artifacts. The build should succeed and contain somewhere the generator
-output:
-</p>
-<!--l. 106-->
-<div class="lstlisting" id="listing-64"><span class="label"><a
- id="x34-146025r1"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reading</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">models</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146026r2"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">added</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etmap</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146027r3"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Loading</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etmap</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146028r4"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">added</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">referenced</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146029r5"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">added</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">referenced</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etphys</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146030r6"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Loading</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146031r7"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">added</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">referenced</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">classpath</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">TimingService</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146032r8"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Loading</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">jar</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">Users</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">hrentz</span><span
-class="ec-lmtt-9">/.</span><span
-class="ec-lmtt-9">m2</span><span
class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">repository</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">modellib</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">/0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">modellib</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">-0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">jar</span><span
-class="ec-lmtt-9">!/</span><span
-class="ec-lmtt-9">TimingService</span><span
+class="ec-lmtt-9">Annotations</span><span
class="ec-lmtt-9">.</span><span
class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146033r9"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Loading</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">file</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etphys</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146034r10"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">validating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">models</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146035r11"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">validation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">finished</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">with</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">0</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">errors</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">0</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">warnings</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146036r12"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generator</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146037r13"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">GeneratorModelBuilder</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">system</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">class</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">from</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">LogSys1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146038r14"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">GeneratorModelBuilder</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">creating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">subsystem</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">instance</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">from</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">subSysRef1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146039r15"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">starting</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">code</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generation</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146040r16"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">clearing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146041r17"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">clearing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146042r18"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">PingPongProtocol</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146043r19"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">PingPongTop</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146044r20"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">Receiver</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146045r21"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">Sender</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
+ id="x35-232004r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146046r22"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
+ id="x35-232005r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Node</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">Node_nodeRef1_subSysRef1</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
+class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
+class="ec-lmtt-9">Logging</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146047r23"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
-class="ec-lmtt-9">:</span><span
+ id="x35-232006r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generating</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SubSystemRunner</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">implementation</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">Node_nodeRef1_subSysRef1Runner</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">in</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#8217;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">:\</span><span
-class="ec-lmtt-9">eTrice</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">tutorial</span><span
-class="ec-lmtt-9">\</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">src</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">gen</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">/&#8217;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146048r24"></a></span><span
-class="ec-lmtt-9">[</span><span
-class="ec-lmtt-9">INFO</span><span
-class="ec-lmtt-9">]</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Info</span><span
+class="ec-lmtt-9">main</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">finished</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">code</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generation</span>
-</div>
-<!--l. 133--><p class="noindent" >When the packaging of the project succeeded two jar files have been created in the <span
-class="ec-lmtt-10">target </span>folder. The larger one with
-"jar-with-dependencies" in its name also contains the referenced Maven components. It can be launched using the <span
-class="ec-lmtt-10">runjar_*</span>
-launch configuration.
-
-
-</p><!--l. 137--><p class="noindent" >Finally we want to mention that the generator switches are passed as arguments to the plug-in. In the pom you can find the
-most commonly used ones in xml comments together with a comment:
-</p>
-<!--l. 140-->
-<div class="lstlisting" id="listing-65"><span class="label"><a
- id="x34-146049r1"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">plugin</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146050r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">groupId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146051r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">org</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">eclipse</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etrice</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">generator</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">java</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">mvn</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">artifactId</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146052r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">0.5.0-</span><span
-class="ec-lmtt-9">SNAPSHOT</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmssbx-10x-x-90">version</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146053r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">executions</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146054r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">execution</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146055r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">goals</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146056r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">goal</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">eTriceJavaGenerator</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">goal</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">MainSubSystem</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146057r9"></a></span><span
+ id="x35-232007r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">goals</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146058r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">configuration</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+ id="x35-232008r6"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146059r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+ id="x35-232009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MainSubSystem</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x003E;</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146060r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">allowed</span><span
+ id="x35-232010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">switches</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generator</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">@DataLogging</span><span
class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">not</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">complete</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146061r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">store</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">restore</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">using</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">POJO</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">data</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">objects</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146062r14"></a></span><span
+class="ec-lmtt-9">pathlist</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">storeDataObj</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146063r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146064r16"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">MSC</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">instrumentation</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146065r17"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">msc_instr</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146066r18"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146067r19"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">the</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">persistence</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">dynamic</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">actors</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146068r20"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">persistable</span><span
-class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146069r21"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146070r22"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">all</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ROOM</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">classes</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">as</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">library</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146071r23"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">lib</span><span
-class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">Logging</span><span
class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146072r24"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146073r25"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">documentation</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146074r26"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">genDocu</span><span
-class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">/&#x003C;</span><span
+class="ec-lmtt-9">actorRef</span><span
+class="ec-lmtt-9">&#x003E;/&#x003C;</span><span
+class="ec-lmtt-9">Port</span><span
+class="ec-lmtt-9">&#x003E;,/</span><span
+class="ec-lmtt-9">Logging</span><span
class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146075r27"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">/&#x003C;</span><span
+class="ec-lmtt-9">actorRef</span><span
+class="ec-lmtt-9">&#x003E;/&#x003C;</span><span
+class="ec-lmtt-9">Port</span><span
class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146076r28"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">generate</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">files</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">incrementally</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">overwrite</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">only</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">if</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">contents</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">changed</span><span
+class="ec-lmtt-9">"</span><span
class="ec-lmtt-9">)</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146077r29"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+ id="x35-232011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">-</span><span
-class="ec-lmtt-9">inc</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146078r30"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146079r31"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">model</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">etmap</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">param</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146080r32"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146081r33"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">configuration</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146082r34"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">execution</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146083r35"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">executions</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146084r36"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">dependencies</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146085r37"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">!</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">[...]</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">--</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146086r38"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">dependencies</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146087r39"></a></span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">/</span><span
-class="ec-lmtt-9">plugin</span><span
-class="ec-lmtt-9">&#x003E;</span>
+class="ec-lmtt-9">...</span>
</div>
-<!--l. 182--><p class="noindent" >E.g. for our example you might want to use the <span
-class="ec-lmtt-10">-msc_instr </span>switch to generate MSCs.
-</p><!--l. 184--><p class="noindent" >Finally for reference we show the complete ROOM model of this example:
-</p>
-<!--l. 186--><div class="lstinputlisting">
<a
- id="x34-146088r1"></a>
+ id="x35-232012r308"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.3.2 </span> <a
+ id="x35-2330002"></a>GenerationOptions</h4>
+<!--l. 2130--><p class="noindent" ><a
+ id="ref:GenerationOptions"></a> Mechanism to adjust the generation.
+</p><!--l. 2133--><p class="noindent" >Options for generation are configured in the launch configuration or in case of standalone generation via command line. A list
+of available options: </p>
+ <ul class="itemize1">
+ <li class="itemize">generate as library
+ </li>
+ <li class="itemize">generate documentation
+ </li>
+ <li class="itemize">generate instrumentation for MSC generation
+ </li>
+ <li class="itemize">override output directories
+ </li>
+ <li class="itemize">some debug options</li></ul>
+
+
+<!--l. 2146--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
<a
- id="x34-146089"></a>
-<span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146090r1"></a></span><span
-class="ec-lmssbx-10x-x-90">RoomModel</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">MavenPingPong</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146091r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146092r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">import</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">basic</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">service</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timing</span><span
-class="ec-lmtt-9">.*</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">from</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">classpath</span><span
-class="ec-lmtt-9">:/</span><span
-class="ec-lmtt-9">TimingService</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146093r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146094r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">LogSys1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146095r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">subSysRef1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SubSysClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146096r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146097r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146098r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SubSysClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146099r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">actorRef1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PingPongTop</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146100r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timingService</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ATimingService</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146101r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">actorRef1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timingService</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146102r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146103r14"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LogicalThread</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">defaultThread</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146104r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146105r16"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146106r17"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PingPongTop</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146107r18"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146108r19"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Sender</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146109r20"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Receiver</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146110r21"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146111r22"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146112r23"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Behavior</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146113r24"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146114r25"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146115r26"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Sender</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146116r27"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146117r28"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PingPongProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146118r29"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146119r30"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146120r31"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146121r32"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146122r33"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Behavior</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146123r34"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">StateMachine</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146124r35"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">init</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SendingPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146125r36"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr0</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SendingPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ReceivedPong</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146126r37"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146127r38"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">pong</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146128r39"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146129r40"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146130r41"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SendingPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146131r42"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146132r43"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">receiver</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">ping</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146133r44"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146134r45"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146135r46"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ReceivedPong</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146136r47"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146137r48"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146138r49"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146139r50"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146140r51"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Receiver</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146141r52"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146142r53"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PingPongProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146143r54"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146144r55"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146145r56"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146146r57"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PTimer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146147r58"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146148r59"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Behavior</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146149r60"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">StateMachine</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146150r61"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">init</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">initial</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146151r62"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr0</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForAWhile</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146152r63"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146153r64"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">ping</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146154r65"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146155r66"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146156r67"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Transition</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">tr1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForAWhile</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">-&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SentPong</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146157r68"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">triggers</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146158r69"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x003C;</span><span
-class="ec-lmtt-9">timeout</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timing</span><span
-class="ec-lmtt-9">&#x003E;</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146159r70"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146160r71"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146161r72"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForPing</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146162r73"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SentPong</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146163r74"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146164r75"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">sender</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">pong</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146165r76"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146166r77"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146167r78"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">State</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">WaitingForAWhile</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146168r79"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">entry</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146169r80"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">timing</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">startTimeout</span><span
-class="ec-lmtt-9">(1000)</span><span
-class="ec-lmtt-9">;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146170r81"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146171r82"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146172r83"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146173r84"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146174r85"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146175r86"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146176r87"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">PingPongProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146177r88"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">incoming</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146178r89"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ping</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146179r90"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146180r91"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">outgoing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146181r92"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">pong</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146182r93"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146183r94"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146184r95"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x34-146185r96"></a></span><span
-class="ec-lmtt-9">}</span>
-<br />
- <div class="caption"
-><span class="id">Listing&#x00A0;6.1:
- </span><span
-class="content">ROOM
- example
- code</span></div><!--tex4ht:label?: x34-1460006 -->
-</div>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse27.html" >next</a>] [<a
+ id="x35-233001r68"></a></p>
+<!--l. 2151--><div class="longtable"> <table id="TBL-84" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-84-1g"><col
+id="TBL-84-1" /></colgroup><colgroup id="TBL-84-2g"><col
+id="TBL-84-2" /><col
+id="TBL-84-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-84-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-84-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CCodeGenerator">CCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-84-1-3"
+class="td11">
+ <!--l. 2152--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-84-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:JavaCodeGenerator">JavaCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-84-2-3"
+class="td11">
+ <!--l. 2153--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-84-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-3-1"
+class="td11"> Is used by: </td><td style="white-space:nowrap; text-align:left;" id="TBL-84-3-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MSCLogging">MSCLogging</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-84-3-3"
+class="td11">
+ <!--l. 2154--><p class="noindent" >Runtime logger for event-driven Messages, represented as
+ a Message Sequence Chart. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-4-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-84-4-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:DocumentationGenerator">DocumentationGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-84-4-3"
+class="td11">
+ <!--l. 2155--><p class="noindent" >A LaTeX documentation generator from eTrice models. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-84-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-7-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-8-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-84-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-84-9-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-84-9-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-84-9-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x35-233002r310"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.3.3 </span> <a
+ id="x35-2340003"></a>JavaCodeGenerator</h4>
+<!--l. 2166--><p class="noindent" ><a
+ id="ref:JavaCodeGenerator"></a>
+</p><!--l. 2171--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x35-234001r69"></a></p>
+<!--l. 2176--><div class="longtable"> <table id="TBL-85" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-85-1g"><col
+id="TBL-85-1" /></colgroup><colgroup id="TBL-85-2g"><col
+id="TBL-85-2" /><col
+id="TBL-85-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-85-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-1-1"
+class="td11"> Contains: </td><td style="white-space:nowrap; text-align:left;" id="TBL-85-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GenerationOptions">GenerationOptions</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-85-1-3"
+class="td11">
+ <!--l. 2176--><p class="noindent" >Mechanism to adjust the generation. </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-85-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-85-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:MSCLogging">MSCLogging</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-85-2-3"
+class="td11">
+ <!--l. 2177--><p class="noindent" >Runtime logger for event-driven Messages, represented as
+ a Message Sequence Chart. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-85-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-85-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-85-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-85-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-85-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-85-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-85-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-85-7-3"
+class="td11">
+</td></tr>
+</table></div>
+<a
+ id="x35-234002r311"></a>
+<h4 class="subsectionHead"><span class="titlemark">7.3.4 </span> <a
+ id="x35-2350004"></a>MSCLogging</h4>
+<!--l. 2189--><p class="noindent" ><a
+ id="ref:MSCLogging"></a> Runtime logger for event-driven Messages, represented as a Message Sequence Chart.
+</p><!--l. 2192--><p class="noindent" >The MSCLogging is activated by default, but can be set manually in the GenerationOptions. The output file is created upon
+regular termination of the application. The resulting file can be found in the logging directory and has the name &#8217;msc.seq&#8217;,
+which can be open with the free open source tool Trace2UML (<a
+href="http://trace2uml.stage.tigris.org/" class="url" ><span
+class="ec-lmtt-10">http://trace2uml.stage.tigris.org/</span></a>)
+</p><!--l. 2196--><p class="noindent" ><img
+src="images/300-MSCLogging.png" alt="PIC"
+ />
+</p><!--l. 2200--><p class="noindent" ><span
+class="ec-lmssbx-10">Features:</span>
+<a
+ id="x35-235001r70"></a></p>
+<!--l. 2205--><div class="longtable"> <table id="TBL-86" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-86-1g"><col
+id="TBL-86-1" /></colgroup><colgroup id="TBL-86-2g"><col
+id="TBL-86-2" /><col
+id="TBL-86-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-86-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-1-1"
+class="td11"> Uses: </td><td style="white-space:nowrap; text-align:left;" id="TBL-86-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:GenerationOptions">GenerationOptions</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-86-1-3"
+class="td11">
+ <!--l. 2205--><p class="noindent" >Mechanism to adjust the generation. </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-86-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-2-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-86-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-86-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-86-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-86-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-86-6-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-86-6-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-86-6-3"
+class="td11">
+</td></tr>
+</table></div>
+
+
+<!--l. 2211--><p class="noindent" ><span
+class="ec-lmssbx-10">Feature Usage:</span>
+<a
+ id="x35-235002r71"></a></p>
+<!--l. 2216--><div class="longtable"> <table id="TBL-87" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-87-1g"><col
+id="TBL-87-1" /></colgroup><colgroup id="TBL-87-2g"><col
+id="TBL-87-2" /><col
+id="TBL-87-3" /></colgroup>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-87-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-1-1"
+class="td11"> Is contained in: </td><td style="white-space:nowrap; text-align:left;" id="TBL-87-1-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:CCodeGenerator">CCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-87-1-3"
+class="td11">
+ <!--l. 2217--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-87-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-2-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-87-2-2"
+class="td11"> &#x00A0;&#x00A0;<span
+class="cmsy-10">&#x2219;</span>&#x00A0;&#x00A0;<a
+href="#ref:JavaCodeGenerator">JavaCodeGenerator</a> </td><td style="white-space:wrap; text-align:left;" id="TBL-87-2-3"
+class="td11">
+ <!--l. 2218--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-87-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-3-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-87-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-4-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-87-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-5-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-87-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-6-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-87-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-87-7-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-87-7-2"
+class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-87-7-3"
+class="td11">
+</td></tr>
+</table></div>
+
+
+<!--l. 124--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch8.html" >next</a>] [<a
href="etrice-docse25.html" >prev</a>] [<a
href="etrice-docse25.html#tailetrice-docse25.html" >prev-tail</a>] [<a
href="etrice-docse26.html" >front</a>] [<a
-href="etrice-docch6.html#etrice-docse26.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+href="etrice-docch7.html#etrice-docse26.html" >up</a>] </p></div>
+<!--l. 124--><p class="noindent" ><a
id="tailetrice-docse26.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html
index 9a3fd2fb1..3ef714351 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html
@@ -4,365 +4,324 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Automatic Diagram Layout with KIELER</title>
+<head><title>Architecture</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse28.html" >next</a>] [<a
-href="etrice-docse26.html" >prev</a>] [<a
-href="etrice-docse26.html#tailetrice-docse26.html" >prev-tail</a>] [<a
+href="etrice-docch8.html" >prev</a>] [<a
+href="etrice-docch8.html#tailetrice-docch8.html" >prev-tail</a>] [<a
href="#tailetrice-docse27.html">tail</a>] [<a
-href="etrice-docch6.html#etrice-docse27.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">6.3 </span> <a
- id="x35-1470003"></a>Automatic Diagram Layout with KIELER</h3>
-<a
- id="x35-147001r199"></a>
-<h4 class="subsectionHead"><span class="titlemark">6.3.1 </span> <a
- id="x35-1480001"></a>Overview</h4>
-<!--l. 5--><p class="noindent" >eTrice provides as a feature the automatic layout of the ROOM diagrams in its graphical editors. This helps in improving the
-pragmatics of the diagrams and frees the user from the burden of manually lay-outing the diagrams on the
-canvas.
-</p><!--l. 9--><p class="noindent" >The automatic lay-outing has been provided with the help of the well known KIELER framework, which focuses on the
-pragmatics of model-based system design, which can improve comprehensibility of diagrams, improve development and
-maintenance time, and improve the analysis of dynamic behavior.
-</p><!--l. 13--><p class="noindent" >This chapter will answer the following questions </p>
- <ul class="itemize1">
- <li class="itemize"><a
-href="#x35-1490002">&#8221;How to perform automatic layout in the graphical editors of eTrice?&#8221;</a>
- </li>
- <li class="itemize"><a
-href="#x35-1500003">&#8221;What are layout options?&#8221;</a>
- </li>
- <li class="itemize"><a
-href="#x35-1510004">&#8221;How to configure the layout options to alter the diagram layout as desired?&#8221;</a></li></ul>
-<!--l. 21--><p class="noindent" >Moreover, some <a
-href="#x35-1540005">&#8221;special layout options&#8221;</a> will also be discussed.
-<a
- id="x35-148001r204"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">6.3.2 </span> <a
- id="x35-1490002"></a>Performing Automatic Layout</h4>
-<!--l. 26--><p class="noindent" >Automatic layout could be performed in eTrice graphical editors using the command to layout the current
-diagram.
-
-
-</p><!--l. 29--><p class="noindent" >This command is available in
-</p>
- <ul class="itemize1">
- <li class="itemize">The context menu of the diagrams
- </li>
- <li class="itemize">Using the <span
-class="ec-lmsso-10">Ctrl+R L </span>shortcut.</li></ul>
-<!--l. 36--><p class="noindent" >Additionally, an entry in the context menu allows to layout only a selected part of the diagram.
-<a
- id="x35-149001r205"></a>
-</p>
-<h4 class="subsectionHead"><span class="titlemark">6.3.3 </span> <a
- id="x35-1500003"></a>Layout Options</h4>
-<!--l. 41--><p class="noindent" >A layout option is a customization point for the layout algorithms, with a specific data type and optionally a
-default value, used to affect how the active layout algorithm computes concrete coordinates for the graph
-elements.
-</p><!--l. 45--><p class="noindent" >User-configurable layout options for a particular diagram object can be viewed and configured through the Layout View.The
-Layout View can be opened from the context menu of a selected diagram object by clicking the <span
-class="ec-lmsso-10">Show Layout View</span>
-entry.
-</p><!--l. 49--><p class="noindent" >On opening the layout view, and selecting any layout option, a description of the layout option is available in the footer of
-eclipse SDK. This is shown in figure <a
-href="#x35-150001r1">6.1<!--tex4ht:ref: fig:layout_options --></a>.
-</p>
-<hr class="figure" /><div class="figure"
->
-
-
-<a
- id="x35-150001r1"></a>
-
-
-
-<!--l. 53--><p class="noindent" ><img
-src="images/043-LayoutOptionDescription.png" alt="PIC"
+href="etrice-docch8.html#etrice-docse27.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">8.1 </span> <a
+ id="x37-2370001"></a>Architecture</h3>
+<!--l. 3--><p class="noindent" >The basic components of eTrice are depicted in the following diagram.
+</p><!--l. 5--><p class="noindent" ><img
+src="images/200-components.jpg" alt="PIC"
/>
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;6.1: </span><span
-class="content">Layout options</span></div><!--tex4ht:label?: x35-150001r1 -->
-
-
-</div><hr class="endfigure" />
-<a
- id="x35-150002r206"></a>
-<h4 class="subsectionHead"><span class="titlemark">6.3.4 </span> <a
- id="x35-1510004"></a>Configuring Layout Options</h4>
-<!--l. 61--><p class="noindent" >The values of the layout options for a particular diagram object (in the visible diagram) can be changed using
-the Layout View of that diagram object. The initial values are the predefined <span
-class="ec-lmsso-10">default </span>values. These defaults
-can be changed using the context menu in Layout View as well as the Layout preference pages provided by
-eTrice.
+</p><!--l. 7--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in subsequent
+sections.
<a
- id="Q1-35-209"></a>
+ id="x37-237001r312"></a>
</p>
-<h5 class="likesubsubsectionHead"><a
- id="x35-1520004"></a>The Layout View</h5>
-<hr class="figure" /><div class="figure"
->
-
-
-<a
- id="x35-152001r2"></a>
-
-
-
-<!--l. 70--><p class="noindent" ><img
-src="images/043-LayoutView.png" alt="PIC"
- />
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;6.2: </span><span
-class="content">Layout view</span></div><!--tex4ht:label?: x35-152001r2 -->
+<h4 class="subsectionHead"><span class="titlemark">8.1.1 </span> <a
+ id="x37-2380001"></a>Editor and Generator Components</h4>
+ <ul class="itemize1">
+ <li class="itemize">core
+ <ul class="itemize2">
+ <li class="itemize">core.common is an Xtext based language which serves as a base for other eTrice languages. It consists
+ of the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.common </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.common.ui</span>. The
+ base grammar defines recurring items like numbers with literals, annotations and the like.
+ </li>
+ <li class="itemize">core.fsm is an Xtext based language that defines state machines in an abstract way. It consists of the
+ plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.fsm </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.fsm.ui</span>. The FSM language
+ is abstract and has to be embedded in a model that defines containers for the state machine with interface
+ items (e.g. ROOM ports or Franca interfaces) and messages. The ROOM grammar of eTrice is derived
+ from this grammar.
+ </li>
+ <li class="itemize">core.room
+ is an Xtext based language called ROOM. It consists of the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room</span>
+ and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. ROOM is the basic modeling language of eTrice.
+ </li>
+ <li class="itemize">core.config is an Xtext based language called Config. It consists of
+ the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. Config
+ is a language designed for the data configuration of model
+ </li>
+ <li class="itemize">core.etphys is an
+ Xtext based language called etPhys. It consists of the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys </span>and
-</div><hr class="endfigure" />
-<!--l. 75--><p class="noindent" >The Layout view (figure <a
-href="#x35-152001r2">6.2<!--tex4ht:ref: fig:layout_view --></a>) allows flexible customization of layout options for the selected objects in the eTrice diagram.
-If no object is selected, the view shows the options for the top-level container of the diagram. Options are
-stored persistently in diagram file (<span
-class="ec-lmsso-10">.structure file / </span>.behavior file) of the eTrice diagram, so that they are still
-available after the next Eclipse restart. Of course this requires the diagram to be saved after an option was
-changed.
-</p><!--l. 81--><p class="noindent" >The options are grouped according to the function of the selected objects. The group Nodes (respectively Edges, Ports, or
-Labels) contains options related to the object itself, such as its size or priority, while the group Parents contains options for
-the elements contained in the selected objects, such as the applied layout algorithm or the spacing between elements. Which
-layout options are displayed depends on the types of selected objects and the active layout algorithm, since each algorithm
-supports only a subset of the available options. Furthermore, some options are only visible if the <span
-class="ec-lmsso-10">Show Advanced</span>
-<span
-class="ec-lmsso-10">Properties </span>button in the view toolbar is activated. The group types can be hidden using the Show Categories
-button.
-</p><!--l. 90--><p class="noindent" >An option can be changed by selecting or entering a new value in the corresponding cell of the Value column.
-</p><!--l. 92--><p class="noindent" >The most important option is Layout Algorithm, which is used to determine the layout algorithm for the contents of
-the selected element. Here either a specific layout algorithm or a layout type can be chosen; in the latter
-case, the most suitable layout algorithm of the given type is taken. By changing the active layout algorithm,
-the content of the layout view is updated to display only those options that are supported by the new layout
-algorithm.
-</p><!--l. 98--><p class="noindent" >Selecting <span
-class="ec-lmsso-10">Restore Default Value </span>in the context menu or the view toolbar (figure <a
-href="#x35-152002r3">6.3<!--tex4ht:ref: fig:layout_context_menu --></a>) removes any value for the currently
-selected option that is stored in the current model file, thus resetting the option to its default value. The view menu has an
-entry Remove all Layout Options which resets all options of the current model by removing persistent data in the model
-file.
-</p>
-<hr class="figure" /><div class="figure"
->
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. etPhys is a language designed for the description of physical
+ systems onto which the logical ROOM systems are deployed.
+ </li>
+ <li class="itemize">core.etmap is an Xtext based language called etMap. It consists of
+ the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. etMap is
+ a language designed for the mapping of logical to physical systems.
+ </li>
+ <li class="itemize">core.genmodel.fsm is an EMF based aggregation layer for finite state machines. It consists of the
+ plugin <span
+class="ec-lmtt-10">org.eclipse.etrice.core.genmodel.fsm</span>. A <span
+class="ec-lmtt-10">ModelComponent </span>can be transformed into a
+ <span
+class="ec-lmtt-10">ExpandedModelComponent </span>which is an explicit version of the state machine with all the inherited items
+ contained.
+ </li>
+ <li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. It consists of the plugin
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.genmodel</span>. A Room model can be transformed into a genmodel which allows
+ easy access to implicit relations of the Room model.</li></ul>
+ </li>
+ <li class="itemize">ui
+ <ul class="itemize2">
+ <li class="itemize">textual
+ <ul class="itemize3">
+ <li class="itemize">fsm.ui is
+ the ui counterpart of core.fsm. It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.fsm.ui</span>. This
+ plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
+ FSM language.
+ </li>
+ <li class="itemize">room.ui is the ui counterpart of core.room.
+ It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE concepts
+ like content assist, error markers and navigation by hyper links for the Room language.
+ </li>
+ <li class="itemize">config.ui is the ui
+ counterpart of core.config. It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. This
+ plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
+ Config language.
+ </li>
+ <li class="itemize">etphys.ui is the ui
+ counterpart of core.etphys. It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. This
+ plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
+ etPhys language.
+ </li>
+ <li class="itemize">etmap.ui is the ui counterpart of core.etmap. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. This plug-in realizes IDE concepts like content assist, error
+ markers and navigation by hyper links for the etPhys language.</li></ul>
+ </li>
+ <li class="itemize">graphical
+ <ul class="itemize3">
+ <li class="itemize">ui.common.base is a set of common code for the diagram editors. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.common.base</span>. It depends only on the FSM part but not on ROOM.
+ </li>
+ <li class="itemize">ui.common is a set of common code for the two diagram editors. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.common</span>.
+ </li>
+ <li class="itemize">ui.commands encapsulates some commands related to the navigation between eTrice editors. It
+ consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.commands</span>.
+ </li>
+ <li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.structure</span>.
+ </li>
+ <li class="itemize">ui.behavior.fsm is implementing the major part for the graphical state machine editor. It consists of
+ the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.behavior.fsm</span>. All property dialogs are handled in an abstract
+ way using a factory.
+ </li>
+ <li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.behavior</span>. It utilizes the ui.behavior.fsm and provides concrete property
+ dialogs.</li></ul>
+ </li></ul>
+ </li>
+ <li class="itemize">generators
+ <ul class="itemize2">
+ <li class="itemize">generator.fsm is a set of general classes and language independent parts of all generators. It consists of
+ the plug-in <span
+class="ec-lmsso-10">org.eclipse.etrice.generator.fsm</span>. It depends only on FSM but not on ROOM.
+ </li>
+ <li class="itemize">generator is a set of general classes and language independent parts of all generators. It consists of the
+ plug-in <span
+class="ec-lmsso-10">org.eclipse.etrice.generator</span>.
+ </li>
+ <li class="itemize">generator.c is the generator for the ANSI-C target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.c</span>.
+ </li>
+ <li class="itemize">generator.cpp is the generator for the C++ target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.cpp</span>.
+ </li>
+ <li class="itemize">generator.java is the generator for the Java target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.java</span>.
+ </li>
+ <li class="itemize">generator.doc is the generator for the model documentation. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.doc</span>.</li></ul>
+ </li></ul>
<a
- id="x35-152002r3"></a>
-
-
-
-<!--l. 105--><p class="noindent" ><img
-src="images/043-ContextMenu.png" alt="PIC"
- />
-<br /> </p><div class="caption"
-><span class="id">Figure&#x00A0;6.3: </span><span
-class="content">Layout in context menu</span></div><!--tex4ht:label?: x35-152002r3 -->
-
-
-</div><hr class="endfigure" />
-<!--l. 110--><p class="noindent" >The context menu for a specific layout option has different alternatives to set the currently active value as <span
-class="ec-lmsso-10">default</span>
-value:
+ id="x37-238001r315"></a>
+<h4 class="subsectionHead"><span class="titlemark">8.1.2 </span> <a
+ id="x37-2390002"></a>The Abstract Finite State Machine Concept</h4>
+<!--l. 109--><p class="noindent" >eTrice comes with an easy to re-use concept of hierarchical finite state machines (FSM for short). A powerful inheritance
+concept is used and there is also state machine validation based on semantic rules for messages and abstract execution
+available.
+</p><!--l. 113--><p class="noindent" >State machines are an integral part of the ROOM language. But they can also be used independently from that
+using
</p>
<ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">Set as Default for this Diagram</span>: Changes the open diagram file so that the same value is applied to all similar
- objects (edit parts) of that diagram.
+ <li class="itemize">for the model part
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.common</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.fsm</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.genmodel.fsm</span></li></ul>
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">Set as Default for ... in this Context</span>: Applies the value to all similar objects that are displayed with the any of
- the eTrice editors (the option is linked to the edit part class of the selected object).
+ <li class="itemize">graphical state machine editor
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.common.ui</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.fsm.ui</span>
+
+
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.ui.common.base</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.core.ui.common</span></li></ul>
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">Set as Default for all ...</span>: Links the option value with the domain model element or the diagram type of the
- selected object (see the context menu depicted above).</li></ul>
-<!--l. 125--><p class="noindent" >These four alternatives have different priorities: if present, the default value for the current diagram is taken first, then the
-default value for the edit part is checked, then the default value for the domain model element, and then the default value for
-the diagram type.
-</p><!--l. 129--><p class="noindent" >Tips: </p>
- <ul class="itemize1">
- <li class="itemize">The information button of the view toolbar can be used to display some useful details on the current selection,
- such as the edit part and domain model classes.
+ <li class="itemize">base classes for code generation
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.generator.fsm</span></li></ul>
</li>
- <li class="itemize">Default values for layout options can most easily be manipulated based on the eTrice domain model elements.</li></ul>
+ <li class="itemize">validation by abstract execution
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">org.eclipse.etrice.abstractexec.behavior</span></li></ul>
+ </li></ul>
+<!--l. 144--><p class="noindent" >The first three parts have to be used by concrete implementations that implement the abstract interface. eTrice itself uses the
+abstract FSMs in exactly this way.
<a
- id="Q1-35-213"></a>
+ id="Q1-37-317"></a>
+</p>
<h5 class="likesubsubsectionHead"><a
- id="x35-1530004"></a>Preference Page</h5>
-<!--l. 140--><p class="noindent" >The user-defined <span
-class="ec-lmsso-10">default </span>values for layout options can also be set using the preference pages provided in eTrice. Three
-preference pages have been provided for this purpose </p>
+ id="x37-2400002"></a>Extending the FSM Model</h5>
+<!--l. 149--><p class="noindent" >The eTrice FSM model has to be embedded in a model that introduces components, interfaces and messages. We
+recommend to use a new Xtext language with a grammar derived from the FSM grammar. This grammar has to specify a
+component derived from the <span
+class="ec-lmtt-10">ModelComponent </span>of the FSM model. It further has to introduce concrete realizations
+of interface items derived from <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>. The interface item is an object contained in a
+component that has a name (role) and holds a reference to some kind of interface of the component (like a
+Franca interface or a ROOM protocol). Finally a concrete message type derived from an <span
+class="ec-lmtt-10">EObject </span>has to
+be defined. The minimal requirement is that this concrete message has an attribute called &#8217;name&#8217; of type
+String.
+</p><!--l. 158--><p class="noindent" >The minimal interface to be implemented consists of </p>
<ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">Layout</span>: for general preferences regarding layout
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">Behavior</span>: for setting default values of layout options for eTrice behavior diagrams
+ <li class="itemize">for the concrete interface item
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">EList&#x003C;EObject&#x003E; getAllIncomingAbstractMessages()</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">EList&#x003C;EObject&#x003E; getAllOutgoingAbstractMessages()</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">ProtocolSemantics getSemantics()</span></li></ul>
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">Structure</span>: for setting default values of layout options for eTrice structure diagrams</li></ul>
-<!--l. 148--><p class="noindent" >These preference pages can be accessed via <span
-class="ec-lmsso-10">Windows &#x003E; Preferences &#x003E; </span><span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">&#x003E; Layout</span>.
-</p><!--l. 150--><p class="noindent" >Note that the contents of these preference pages are in sync with the <span
-class="ec-lmsso-10">KIELER &#x003E; Layout </span>preference page
-provided by the KIELER. Relevant entries in the <span
-class="ec-lmsso-10">KIELER &#x003E; Layout </span>page are shown in the above preference
-pages.
-<a
- id="Q1-35-215"></a>
-<span
-class="ec-lmssbo-10">Layout </span><span
-class="ec-lmssbx-10">Preference Page </span><br
-class="newline" />
-The <span
-class="ec-lmsso-10">Layout </span>preference page is meant to configure general options regarding the layout.
-If <span
-class="ec-lmsso-10">Set routing style of all edges to oblique </span>is active, all routing styles and smoothness settings of edges are removed when
-automatic layout is performed. Since most layouters compute the routing of edges as part of their algorithm, these styles
-usually do not yield the expected results.
+ <li class="itemize">for the concrete model component
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">EList&#x003C;AbstractInterfaceItem&#x003E; getAbstractInterfaceItems </span>&#8211; the interface items contained in
+ this model component
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">EList&#x003C;AbstractInterfaceItem&#x003E; getAllAbstractInterfaceItems </span>&#8211; all interface items including
+ inherited ones
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">String getComponentName() </span>&#8211; should return the name of the model component</li></ul>
+ </li></ul>
<a
- id="Q1-35-216"></a>
-
-
-<span
-class="ec-lmssbo-10">Behavior </span><span
-class="ec-lmssbx-10">and </span><span
-class="ec-lmssbo-10">Structure </span><span
-class="ec-lmssbx-10">Preference Page </span><br
-class="newline" />
-The <span
-class="ec-lmsso-10">Behavior </span>and <span
-class="ec-lmsso-10">Structure </span>sub-preference pages help in setting up the default values of layout options in behavior and
-structure diagrams respectively.
-The <span
-class="ec-lmsso-10">Default Layout Option Values </span>table is used to manage the default setting for layout options, which can also be modified
-with the context menu of the layout view (see above). All user-defined settings are displayed here, and the buttons on the
-right of the table serve to create, edit, and remove entries. The Type column shows the type of element the option is
-linked with: either edit part, model element, or diagram type. The Element column shows the class name
-for options that relate to edit parts or domain model elements, and the diagram type name for options that
-relate to diagram types. Option is the name of the layout option, and Value is the currently set value of the
-option.
-Creating a new entry requires the selection of the type of related element (figure <a
-href="#x35-153001r4">6.4<!--tex4ht:ref: fig_layout_preference_page --></a>) and entering its class
-name or identifier. Class names of edit parts can be explored using the information button of the layout view,
-while the class names for the domain model elements and the diagram type identifiers for the diagram types
-can be selected with the Browse button. After that, a layout option has to be selected from the list using
-the corresponding Browse button. Hitting OK creates an entry, and its value can then be set using the Edit
-button.
-</p>
-<hr class="figure" /><div class="figure"
->
-
-
-<a
- id="x35-153001r4"></a><a
- id="x37-16300047"></a><a
- id="x38-16500048"></a>
-
-
-
-<img
-src="images/043-PreferencePage.png" alt="PIC"
- />
-<br /> <div class="caption"
-><span class="id">Figure&#x00A0;6.4: </span><span
-class="content">Layout preference page</span></div><!--tex4ht:label?: x35-153001r4 -->
-
-
-</div><hr class="endfigure" />
-Note that the <span
-class="ec-lmsso-10">Behavior </span>preference page will show only those entries which hold for the behavior diagrams.
-Moreover, it will allow setting default values of layout options for only those domain model elements and diagram
-types which could be present in the behavior editor diagrams. Similar thing holds for the <span
-class="ec-lmsso-10">Structure </span>preference
-page.
-<a
- id="x35-153002r208"></a>
-<h4 class="subsectionHead"><span class="titlemark">6.3.5 </span> <a
- id="x35-1540005"></a>Special Layout Options</h4>
-<!--l. 198--><p class="noindent" >While most layout options are used to affect how the active layout algorithm computes concrete coordinates for the graph
-elements, there are some layout options that have a special role.
-<a
- id="Q1-35-219"></a>
-</p>
+ id="Q1-37-319"></a>
<h5 class="likesubsubsectionHead"><a
- id="x35-1550005"></a>Layout Algorithm</h5>
-<!--l. 203--><p class="noindent" >The option with identifier de.cau.cs.kieler.algorithm specifies which layout algorithm to use for the content of a composite
-node. The value can be either the identifier of a layout algorithm or the identifier of a layout type. In the latter case the
-algorithm with highest priority of that type is applied.
-</p><!--l. 207--><p class="noindent" >For the purpose of automatic diagram layout in eTrice, we use the <span
-class="ec-lmsso-10">Layered </span>algorithms which are meant for lay-outing
-hierarchical diagrams and are best suited for behavior and structure diagrams in eTrice. For the behavior diagrams we have
-used the <span
-class="ec-lmsso-10">Graphviz Dot </span>algorithm whereas for the structure diagrams we have used the <span
-class="ec-lmsso-10">KLay Layered </span>algorithm. Though the
-layout algorithm being used for performing layout can be changed at ones own will, it is recommended to use the
-defaults.
-<a
- id="Q1-35-221"></a>
-</p>
-<h5 class="likesubsubsectionHead"><a
- id="x35-1560005"></a>Diagram Type</h5>
-<!--l. 215--><p class="noindent" >Diagram types are used to classify graphical diagrams for setting default layout option values for a set of similar diagrams.
-The diagram type of an element is specified with the layout option <span
-class="ec-lmtt-10">de.cau.cs.kieler.diagramType</span>. Thus, these help
-in
-</p><!--l. 219--><p class="noindent" >The following diagram types have been defined and used in eTrice: </p>
+ id="x37-2410002"></a>Extending the State Machine Editor</h5>
+<!--l. 176--><p class="noindent" >The concrete state machine editor minimally needs to define </p>
<ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">General </span>- This type is automatically assigned to all diagrams for which no specific type is declared. (Predefined
- in KIELER)
+ <li class="itemize">the editor class itself by deriving it from the <span
+class="ec-lmtt-10">AbstractFSMEditor</span>
+
+
+ </li>
+ <li class="itemize">a diagram type provider (which may derive from <span
+class="ec-lmtt-10">AbstractDiagramTypeProvider</span>)
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">Behavior Diagrams </span>- This type has been assigned to the diagram objects in eTrice Behavior Diagrams.
+ <li class="itemize">a Google Guice module with bindings for
+ <ul class="itemize2">
+ <li class="itemize"><span
+class="ec-lmtt-10">IFSMDialogFactory</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">DiagramAccessBase</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">IBehaviorQuickfixProvider</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">IResourceSetProvider</span></li></ul>
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">Structure Diagrams </span>- This type has been assigned to the diagram objects in eTrice Structure Diagrams.</li></ul>
-<!--l. 228--><p class="noindent" >Note that not all diagrams objects in the behavior and structure diagrams are assigned the last two diagram types.
-Only the top-level container and the visible bounding box has been assigned these diagram types in respective
-editors.
+ <li class="itemize">concrete implementations of all property dialogs the <span
+class="ec-lmtt-10">IFSMDialogFactory </span>produces</li></ul>
<a
- id="x35-156001r218"></a>
+ id="x37-241001r316"></a>
+<h4 class="subsectionHead"><span class="titlemark">8.1.3 </span> <a
+ id="x37-2420003"></a>Runtimes</h4>
+<!--l. 193--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The C++ runtime is still a prototype. The runtimes are libraries written
+in the target language against which the generated code is compiled.
+<a
+ id="x37-242001r321"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.3.6 </span> <a
- id="x35-1570006"></a>Further References</h4>
-<!--l. 234--><p class="noindent" >Most parts of the above documentation have been taken from the "KIML wiki"
-(<a
-href="http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078" class="url" ><span
-class="ec-lmtt-10">http://rtsys.informatik.uni-_kiel.de/confluence/pages/viewpage.action?pageId=328078</span></a> and have been
-modified for automatic layout in eTrice. A more detailed description about the layout algorithms, predefined
-diagram types and the internal structure of KIELER Infrastructure for Meta-Layout (KIML) can be found
-there.
+<h4 class="subsectionHead"><span class="titlemark">8.1.4 </span> <a
+ id="x37-2430004"></a>Unit Tests</h4>
+<!--l. 199--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests.
</p>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse28.html" >next</a>] [<a
-href="etrice-docse26.html" >prev</a>] [<a
-href="etrice-docse26.html#tailetrice-docse26.html" >prev-tail</a>] [<a
+href="etrice-docch8.html" >prev</a>] [<a
+href="etrice-docch8.html#tailetrice-docch8.html" >prev-tail</a>] [<a
href="etrice-docse27.html" >front</a>] [<a
-href="etrice-docch6.html#etrice-docse27.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+href="etrice-docch8.html#etrice-docse27.html" >up</a>] </p></div>
+<!--l. 201--><p class="noindent" ><a
id="tailetrice-docse27.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html
index ff1120379..7ab8200c1 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html
@@ -4,199 +4,525 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Annotations</title>
+<head><title>Component Overview</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse29.html" >next</a>] [<a
+<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse27.html" >prev</a>] [<a
href="etrice-docse27.html#tailetrice-docse27.html" >prev-tail</a>] [<a
href="#tailetrice-docse28.html">tail</a>] [<a
-href="etrice-docch6.html#etrice-docse28.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">6.4 </span> <a
- id="x36-1580004"></a>Annotations</h3>
-<!--l. 3--><p class="noindent" >In eTrice it is possible to use annotations similar to Java annotations. Annotation types can be defined together with their
-targets and other properties and later they can be used.
-</p><!--l. 7--><p class="noindent" >Annotations can be processed by the code generator to influence its behavior.
+href="etrice-docch8.html#etrice-docse28.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">8.2 </span> <a
+ id="x38-2440002"></a>Component Overview</h3>
<a
- id="x36-158001r223"></a>
+ id="x38-244001r322"></a>
+<h4 class="subsectionHead"><span class="titlemark">8.2.1 </span> <a
+ id="x38-2450001"></a>Room Language Overview</h4>
+<!--l. 205--><p class="noindent" >We assume that the reader is familiar with the Xtext concepts. So we concentrate on the details of our implementation that
+are worth to be pointed out.
+<a
+ id="Q1-38-325"></a>
</p>
-<h4 class="subsectionHead"><span class="titlemark">6.4.1 </span> <a
- id="x36-1590001"></a>Annotation Type Definitions</h4>
-<!--l. 11--><p class="noindent" >Examples of such definitions can be found in the files <span
-class="ec-lmtt-10">Annotations.room </span>which are part of the modellibs. They contain
-definitions of annotations that are recognized by the generator of the associated language.
-</p><!--l. 14--><p class="noindent" >Consider e.g. the annotations definitions for Java
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2460001"></a>Model Tweaks</h5>
+<!--l. 210--><p class="noindent" >All language EMF models of eTrice are inferred from their respective grammar. However, this powerful mechanism has to be
+tweaked in some places.
+</p><!--l. 213--><p class="noindent" >In order to do so post processors are added that are invoked by the Xtext framework on language generation. This is done for
+the FSM language by <span
+class="ec-lmsso-10">/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/postprocessing/ImplPostprocessor.xtend</span>.
+</p><!--l. 216--><p class="noindent" >The following parts of the model are changed or added: </p>
+ <ul class="itemize1">
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getName </span>is added to the <span
+class="ec-lmtt-10">State </span>class
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getName </span>is added to the <span
+class="ec-lmtt-10">StateGraphItem </span>class
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getSemantics </span>is added to the <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllIncomingAbstractMessages </span>is added to the <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllOutgoingAbstractMessages </span>is added to the <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>
+ </li>
+ <li class="itemize">an interface class <span
+class="ec-lmtt-10">IInterfaceItemOwner </span>is added
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAbstractInterfaceItems </span>is added to the <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllAbstractInterfaceItems </span>is added to the <span
+class="ec-lmtt-10">AbstractInterfaceItem</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">IInterfaceItemOwner </span>is made a super class of <span
+class="ec-lmtt-10">ModelComponent</span></li></ul>
+<!--l. 228--><p class="noindent" >All but the first two items in the list are part of the abstract FSM definition and are used to interface to the model
+embedding the FSM language, e.g. ROOM.
+</p><!--l. 231--><p class="noindent" >For the ROOM language the post processor is <span
+class="ec-lmsso-10">/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/RoomPostprocessor.ext</span>.
+</p><!--l. 234--><p class="noindent" >The following parts of the model are changed or added: </p>
+ <ul class="itemize1">
+ <li class="itemize">the default <span
+class="ec-lmtt-10">multiplicity </span>of the <span
+class="ec-lmtt-10">Port </span>is set to 1
+ </li>
+ <li class="itemize">the operation <span
+class="ec-lmtt-10">isReplicated </span>is added to the <span
+class="ec-lmtt-10">Port</span>
+
+
+ </li>
+ <li class="itemize">the default <span
+class="ec-lmtt-10">multiplicity </span>of the <span
+class="ec-lmtt-10">ActorRef </span>is set to 1
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getGeneralProtocol </span>is added to the <span
+class="ec-lmtt-10">InterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getSemantics </span>is added to the <span
+class="ec-lmtt-10">InterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllIncomingAbstractMessages </span>is added to the <span
+class="ec-lmtt-10">InterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllOutgoingAbstractMessages </span>is added to the <span
+class="ec-lmtt-10">InterfaceItem</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getExternalEndPorts </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getRelayPorts </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getImplementedSPPs </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getActorBase </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getComponentName </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAbstractInterfaceItems </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getAllAbstractInterfaceItems </span>is added to the <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getStructureClass </span>is added to the <span
+class="ec-lmtt-10">ActorContainerRef</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">toString </span>is added to the <span
+class="ec-lmtt-10">RefPath</span>
+ </li>
+ <li class="itemize">for attribute <span
+class="ec-lmtt-10">idx </span>of <span
+class="ec-lmtt-10">RefSegment </span>the default is changed to -1
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">toString </span>is added to the <span
+class="ec-lmtt-10">RefSegment</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getLiteralValue </span>is added to the <span
+class="ec-lmtt-10">EnumLiteral</span>
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getFullName </span>is added to the <span
+class="ec-lmtt-10">EnumLiteral</span></li></ul>
+<a
+ id="Q1-38-327"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2470001"></a>Imports by URI Using Namespaces</h5>
+<!--l. 260--><p class="noindent" >The import mechanism employed is based on URIs. This is configured for one part in the GenerateRoom.mwe2 model
+workflow by setting the fragments ImportURIScopingFragment and ImportUriValidator). For the other part it is configured in
+the Guice modules by binding </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">PlatformRelativeUriResolver </span>&#8211; this class tries to convert the import URI into a platform relative URI. It
+ also replaces environment variables written in $ with their respective values.
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">ImportedNamespaceAwareLocalScopeProvider </span>&#8211; this is a standard scope provider which is aware of
+ namespaces
+
+
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">GlobalNonPlatformURIEditorOpener </span>&#8211; this editor opener tries to convert general URIs into platform URIs
+ because editors can only open platform URIs
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">ImportAwareHyperlinkHelper </span>&#8211; turns the URI part of an import into a navigatable hyper link</li></ul>
+<a
+ id="Q1-38-329"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2480001"></a>Naming</h5>
+<!--l. 275--><p class="noindent" >Two classes provide object names used for link resolution and for labels. The <span
+class="ec-lmtt-10">RoomNameProvider </span>provides frequently used
+name strings, some of them are hierarchical like State paths. The <span
+class="ec-lmtt-10">RoomFragmentProvider </span>serves a more formal purpose
+since it provides a link between EMF models (as used by the diagram editors) and the textual model representation used by
+Xtext.
+<a
+ id="Q1-38-331"></a>
</p>
-<!--l. 16--><div class="lstinputlisting">
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2490001"></a>Helpers</h5>
+<!--l. 283--><p class="noindent" >The <span
+class="ec-lmtt-10">RoomHelpers </span>class provides a great deal of static methods that help retrieve frequently used information from the
+model. Among many, many others </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getAllEndPorts(ActorClass) </span>- returns a list of all end ports of an actor class including inherited ones
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getInheritedActionCode(Transition, ActorClass) </span>- get the inherited part of a transition&#8217;s action code
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getSignature(Operation) </span>- returns a string representing the operation signature suited for a label</li></ul>
<a
- id="x36-159001"></a>
-<span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">RoomModel</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">room</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">basic</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">annotations</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159003r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159004r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">AnnotationType</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">BehaviorManual</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159005r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">target</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">=</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorBehavior</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159006r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159007r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159008r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">AnnotationType</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorBaseClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159009r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">target</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">=</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159010r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">mandatory</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">class</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ptCharacter</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159011r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">mandatory</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">package</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ptCharacter</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159012r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159013r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x36-159014r13"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 18--><p class="noindent" >Here we find two definitions. The meaning of those annotations will be explained later in section <a
-href="#x36-1600002">6.4.2<!--tex4ht:ref: sec:predef_annotations --></a> about "<a
-href="#x36-1600002">Usage and
-Effect of the Pre-defined Annotations<!--tex4ht:ref: sec:predef_annotations --></a>".
-</p><!--l. 21--><p class="noindent" >The annotation type definition defines a target where the annotation is allowed to be used. This can be one
-of
+ id="Q1-38-333"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2500001"></a>Validation</h5>
+<!--l. 297--><p class="noindent" >Validation is used from various places. Therefore all validation code is accumulated in the @ValidationUtil@ class. All methods
+are static and many of them return a Result object which contains information about the problem detected as well as object
+and feature as suited for most validation purposes.
+<a
+ id="x38-250001r324"></a>
</p>
+<h4 class="subsectionHead"><span class="titlemark">8.2.2 </span> <a
+ id="x38-2510002"></a>Config Language Overview</h4>
+<a
+ id="Q1-38-336"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2520002"></a>Model Tweaks</h5>
+<!--l. 305--><p class="noindent" >A couple of operations are added to the ConfigModel </p>
<ul class="itemize1">
- <li class="itemize">DataClass
+ <li class="itemize"><span
+class="ec-lmtt-10">getActorClassConfigs</span>
</li>
- <li class="itemize">ActorClass
+ <li class="itemize"><span
+class="ec-lmtt-10">getActorInstanceConfigs</span>
</li>
- <li class="itemize">ActorBehavior
+ <li class="itemize"><span
+class="ec-lmtt-10">getProtocolClassConfigs</span>
</li>
- <li class="itemize">ProtocolClass
+ <li class="itemize"><span
+class="ec-lmtt-10">getSubSystemConfigs</span></li></ul>
+<a
+ id="Q1-38-338"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2530002"></a>Imports by URI Using Namespaces</h5>
+<!--l. 315--><p class="noindent" >Imports are treated like in Room language, section <span
+class="ec-lmsso-10">Imports by URI Using Namespaces</span>.
+<a
+ id="Q1-38-340"></a>
+</p>
+
+
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2540002"></a>Util</h5>
+<!--l. 319--><p class="noindent" >A set of static utility methods can be found in the <span
+class="ec-lmtt-10">ConfigUtil </span>class.
+<a
+ id="x38-254001r335"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">8.2.3 </span> <a
+ id="x38-2550003"></a>Aggregation Layer Overview</h4>
+<!--l. 323--><p class="noindent" >The eTrice Generator Model (genmodel.fsm and genmodel) serves as an aggregation layer. Its purpose is to
+allow easy access to information which is implicitly contained in the Room model but not simple to retrieve.
+Examples of this are the state machine with inherited items or a list of all triggers active at a state in the
+order in which they will be evaluated or the actual peer port of an end port (following bindings through relay
+ports).
+</p><!--l. 329--><p class="noindent" >The lower level <span
+class="ec-lmtt-10">FSMGeneratorModelBuilder </span>takes a <span
+class="ec-lmtt-10">ModelComponent </span>and returns a <span
+class="ec-lmtt-10">ExpandedModelComponent </span>which has
+the inheritance hierarchy of the state machine collapsed into one state machine. This lower level generator model only
+depends on general parts and doesn&#8217;t refer to the ROOM model.
+</p><!--l. 333--><p class="noindent" >The higher level Generator Model includes the FSM Generator Model. It is created from a list of Room models by a call of
+the
+
+
+</p>
+<div class="verbatim" id="verbatim-14">
+createGeneratorModel(List&#x003C;RoomModel&#x003E;,&#x00A0;boolean)
+</div>
+<!--l. 336--><p class="nopar" >
+</p><!--l. 338--><p class="noindent" >method of the <span
+class="ec-lmtt-10">GeneratorModelBuilder </span>class.
+</p><!--l. 340--><p class="noindent" >The <span
+class="ec-lmtt-10">Root </span>object of the resulting Generator Model provides chiefly two things: </p>
+ <ul class="itemize1">
+ <li class="itemize">a tree of instances starting at each <span
+class="ec-lmtt-10">SubSystem </span>with representations of each <span
+class="ec-lmtt-10">ActorInstance </span>and <span
+class="ec-lmtt-10">PortInstance</span>
</li>
- <li class="itemize">CompoundProtocolClass
+ <li class="itemize">for each <span
+class="ec-lmtt-10">ActorClass </span>a corresponding <span
+class="ec-lmtt-10">ExpandedActorClass </span>with an explicit state machine containing all
+ inherited state graph items</li></ul>
+<a
+ id="Q1-38-343"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2560003"></a>The Instance Model</h5>
+<!--l. 350--><p class="noindent" >The instance model allows easy access to instances including their unique paths and object IDs. Also it is possible to
+get a list of all peer port instances for each port instance without having to bother about port and actor
+replication.
+<a
+ id="Q1-38-345"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2570003"></a>The Expanded Model Component</h5>
+<!--l. 356--><p class="noindent" >The expanded model component contains, as already mentioned, the complete state machine of the model component. This
+considerably simplifies the task of state machine generation. Note that the generated code always contains the complete state
+machine of an actor. I.e. no target language inheritance is used to implement the state machine inheritance. Furthermore the
+<span
+class="ec-lmtt-10">ExpandedModelComponent </span>gives access to </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getIncomingTransitions(StateGraphNode) </span>&#8211; the set of incoming transition of a <span
+class="ec-lmtt-10">StateGraphNode </span>(<span
+class="ec-lmtt-10">State</span>,
+ <span
+class="ec-lmtt-10">ChoicePoint </span>or <span
+class="ec-lmtt-10">TransitionPoint</span>)
</li>
- <li class="itemize">SubSystemClass
+ <li class="itemize"><span
+class="ec-lmtt-10">getOutgoingTransitions(StateGraphNode) </span>&#8211; the set of outgoing transition of a <span
+class="ec-lmtt-10">StateGraphNode</span>
</li>
- <li class="itemize">LogicalSystem</li></ul>
-<!--l. 34--><p class="noindent" >Attributes can be added as needed and qualified as mandatory or optional. Attributes have a type (similar as the
-PrimitiveType but with the understanding that ptChar is a string). Another attribute type is enum with an explicit list of
-allowed enum literals.
+ <li class="itemize"><span
+class="ec-lmtt-10">getActiveTriggers(State) </span>&#8211; the triggers that are active in this <span
+class="ec-lmtt-10">State </span>in the order they are evaluated</li></ul>
<a
- id="x36-159015r225"></a>
+ id="Q1-38-347"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2580003"></a>The Expanded Actor Class</h5>
+<!--l. 372--><p class="noindent" >The <span
+class="ec-lmtt-10">ExpandedActorClass </span>is derived from the <span
+class="ec-lmtt-10">ExpandedModelComponent </span>and adds only minor new features.
</p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getActorClass() </span>&#8211; for convenience to avoid casts of the <span
+class="ec-lmtt-10">ModelComponent </span>to an <span
+class="ec-lmtt-10">ActorClass</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getVarDeclData(Transition) </span>&#8211; for convenience to avoid casts to <span
+class="ec-lmtt-10">VarDecl</span></li></ul>
+<a
+ id="Q1-38-349"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2590003"></a>Transition Chains</h5>
+<!--l. 380--><p class="noindent" >By transition chains we denote a connected subset of the (hierarchical) state machine that starts with a transition starting at
+a state and continues over transitional state graph nodes (choice points and transition points) and continuation transitions
+until a state is reached. In general a transition chain starts at one state and ends in several states (the chain may branch in
+choice points). A <span
+class="ec-lmtt-10">TransitionChain </span>of a transition is retrieved by a call of <span
+class="ec-lmtt-10">getChain(Transition) </span>of the
+<span
+class="ec-lmtt-10">ExpandedActorClass</span>. The <span
+class="ec-lmtt-10">TransitionChain </span>accepts an <span
+class="ec-lmtt-10">ITransitionChainVisitor </span>which is called along the chain to
+generate the action codes of involved transitions and the conditional statements arising from the involved choice
+points.
-<h4 class="subsectionHead"><span class="titlemark">6.4.2 </span> <a
- id="x36-1600002"></a>Usage and Effect of the Pre-defined Annotations</h4>
-<!--l. 42--><p class="noindent" >The eTrice generators currently implement two annotations.
<a
- id="Q1-36-228"></a>
+ id="x38-259001r342"></a>
+</p>
+<h4 class="subsectionHead"><span class="titlemark">8.2.4 </span> <a
+ id="x38-2600004"></a>Generator Overview</h4>
+<!--l. 392--><p class="noindent" >There is one plug-in that consists of base classes and some generic generator parts which are re-used by all language specific
+generators
+<a
+ id="Q1-38-352"></a>
</p>
<h5 class="likesubsubsectionHead"><a
- id="x36-1610002"></a>BehaviorManual</h5>
-<!--l. 46--><p class="noindent" >This annotation has no attribute. If specified the code generator won&#8217;t generate a state machine but part of the interface and
-methods of an actor class.
-</p><!--l. 49--><p class="noindent" ><span
-class="ec-lmssbx-10">Java</span>
-</p><!--l. 51--><p class="noindent" >An abstract base class <span
-class="ec-lmtt-10">Abstract&#x003C;ActorClassName&#x003E; </span>is generated which contains ports, SAPs and attributes as members.
+ id="x38-2610004"></a>Base Classes and Interfaces</h5>
+<!--l. 397--><p class="noindent" >We just want to mention the most important classes and interfaces. Some of them can be found in the
+<span
+class="ec-lmtt-10">org.eclipse.etrice.generator.fsm </span>and th rest in <span
+class="ec-lmtt-10">org.eclipse.etrice.generator</span>.
+</p>
+ <ul class="itemize1">
+ <li class="itemize">
+ <div class="flushleft"
+>
+<!--l. 402--><p class="noindent" >
+<span
+class="ec-lmtt-10">ITranslationProvider </span>&#8212; this interface is used by the <span
+class="ec-lmtt-10">DetailCodeTranslator </span>for the language dependent
+translation of e.g. port.message() notation in detail code</p></div>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">AbstractGenerator </span>&#8212; concrete language generators should derive from this base class
+ </li>
+ <li class="itemize">
+ <div class="flushleft"
+>
+<!--l. 406--><p class="noindent" >
+<span
+class="ec-lmtt-10">DefaultFSMTranslationProvider </span>and <span
+class="ec-lmtt-10">DefaultTranslationProvider </span>&#8212; a stub implementation of
+<span
+class="ec-lmtt-10">IFSMTranslationProvider </span>and <span
+class="ec-lmtt-10">ITranslationProvider </span>from which clients may derive</p></div>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">Indexed </span>&#8212; provides an indexed iterable of a given iterable
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">GeneratorBaseModule </span>&#8212; a Google Guice module that binds a couple of basic services. Concrete language generators
+ should use a module that derives from this</li></ul>
+<a
+ id="Q1-38-354"></a>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2620004"></a>Generic Generator Parts</h5>
+<!--l. 415--><p class="noindent" >The generic generator parts provide code generation blocks on a medium granularity. The language dependent top level
+generators embed those blocks in a larger context (file, class, ...). Language dependent low level constructs are provided by
+means of an <span
+class="ec-lmtt-10">ILanguageExtension</span>. This extension and other parts of the generator be configured using Google Guice
+dependency injection.
+<a
+ id="Q1-38-356"></a>
+<span
+class="ec-lmssbx-10">GenericActorClassGenerator </span>The <span
+class="ec-lmtt-10">GenericActorClassGenerator </span>generates constants for the interface items of a actor.
+Those constants are used by the generated state machine.
+<a
+ id="Q1-38-357"></a>
+<span
+class="ec-lmssbx-10">GenericProtocolClassGenerator </span>The <span
+class="ec-lmtt-10">GenericProtocolClassGenerator </span>generates message ID constants for a
+protocol.
+<a
+ id="Q1-38-358"></a>
+</p>
+<span
+class="ec-lmssbx-10">GenericStateMachineGenerator</span>
+<div class="flushleft"
+>
+
+
+<!--l. 431--><p class="noindent" >
The <span
-class="ec-lmtt-10">receiveEvent() </span>method is dispatching to distinct methods per pair of interface item (port or SAP) and message
-coming in from this interface item. The user has to sub class the abstract base class and may override the generated methods
-as needed.
-</p><!--l. 56--><p class="noindent" ><span
-class="ec-lmssbx-10">C</span>
-</p><!--l. 58--><p class="noindent" >The generator is only generating a public header file and is leaving its implementation to the user.
+class="ec-lmtt-10">GenericStateMachineGenerator </span>generates the complete state machine implementation. The skeleton of the
+generated code is</p></div>
+ <ul class="itemize1">
+ <li class="itemize">definition state ID constants
+ </li>
+ <li class="itemize">definition of transition chain constants
+ </li>
+ <li class="itemize">definition of trigger constants
+ </li>
+ <li class="itemize">entry, exit and action code methods
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">exitTo </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">executeTransitionChain </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">enterHistory </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">executeInitTransition </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">receiveEvent </span>method</li></ul>
+<!--l. 446--><p class="noindent" >The state machine works as follows. The main entry method is the <br
+class="newline" /><span
+class="ec-lmtt-10">receiveEvent </span>method. This is the case for both, data driven (polled) and event driven state machines. Then a number of
+nested switch/case statements evaluates trigger conditions and derives the transition chain that is executed. If a
+trigger fires then the <span
+class="ec-lmtt-10">exitTo </span>method is called to execute all exit codes involved. Then the transition chain
+action codes are executed and the choice point conditions are evaluated in the <span
+class="ec-lmtt-10">executeTransitionChain</span>
+method. Finally the history of the state where the chain ends is entered and all entry codes are executed by
+<span
+class="ec-lmtt-10">enterHistory</span>.
+<a
+ id="Q1-38-359"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2630004"></a>The Java Generator</h5>
+<!--l. 456--><p class="noindent" >The Java generator employs the generic parts of the generator. The <span
+class="ec-lmtt-10">JavaTranslationProvider </span>is very simple and only
+handles the case of sending a message from a distinct replicated port: <span
+class="ec-lmtt-10">replPort[2].message()</span>. Other cases are handled by
+the base class by returning the original text.
+</p><!--l. 460--><p class="noindent" >The <span
+class="ec-lmtt-10">DataClassGen </span>uses Java inheritance for the generated data classes. Otherwise it is pretty much straight
+forward.
+</p><!--l. 463--><p class="noindent" >The <span
+class="ec-lmtt-10">ProtocolClassGen </span>generates a class for the protocol with nested static classes for regular and conjugated ports and
+similar for replicated ports.
+</p><!--l. 466--><p class="noindent" >The <span
+class="ec-lmtt-10">ActorClassGen </span>uses Java inheritance for the generated actor classes. So ports, SAPs and attributes and detail code
+methods are inherited. Not inherited is the state machine implementation.
<a
- id="Q1-36-230"></a>
+ id="Q1-38-361"></a>
</p>
<h5 class="likesubsubsectionHead"><a
- id="x36-1620002"></a>ActorBaseClass</h5>
-<!--l. 62--><p class="noindent" >This annotation is defined for Java only. It tells the generator that the generated actor class should inherit from the specified
-base class (mandatory string parameters class and package).
-</p><!--l. 65--><p class="noindent" >If the actor class is modeled as having another actor base class then the annotation has no effect.
+ id="x38-2640004"></a>The ANSI-C Generator</h5>
+<!--l. 471--><p class="noindent" >The C generator translates data, protocol and actor classes into structs together with a set of methods that operate on them
+and receive a pointer to those data (called <span
+class="ec-lmtt-10">self </span>in analogy to the implicit C++ <span
+class="ec-lmtt-10">this </span>pointer). No dynamic memory
+allocation is employed. All actor instances are statically initialized. One of the design goals for the generated C code was an
+optimized footprint in terms of memory and performance to be able to utilize modeling with ROOM also for tiny low end
+micro controllers.
+<a
+ id="Q1-38-363"></a>
+</p>
+<h5 class="likesubsubsectionHead"><a
+ id="x38-2650004"></a>The Documentation Generator</h5>
+<!--l. 480--><p class="noindent" >The documentation generator creates documentation in LaTex format which can be converted into PDF and many other
+formats.
</p>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse29.html" >next</a>] [<a
+<!--l. 128--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse27.html" >prev</a>] [<a
href="etrice-docse27.html#tailetrice-docse27.html" >prev-tail</a>] [<a
href="etrice-docse28.html" >front</a>] [<a
-href="etrice-docch6.html#etrice-docse28.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+href="etrice-docch8.html#etrice-docse28.html" >up</a>] </p></div>
+<!--l. 128--><p class="noindent" ><a
id="tailetrice-docse28.html"></a></p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
index edb38eb43..bf6718814 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
index 24cb4c083..53c3ad4d0 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
index 9fa7fa84f..e7722bed6 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
index 287d5f79d..fe08bd113 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html
index dd4ed2584..beebde614 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html
index bd734f770..86bd90e7f 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -574,7 +574,7 @@ compiler are configured to use the modellib. Otherwise the generated code can no
<a
- id="x16-7100074"></a>
+ id="x17-8900074"></a>
<div class="minipage">
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html
index fc51bd18d..16cab5b8a 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2015-06-26 00:33:00" />
+<meta name="date" content="2015-06-30 18:08:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>

Back to the top