diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.doc/html/etrice-docse15.html')
-rw-r--r-- | plugins/org.eclipse.etrice.doc/html/etrice-docse15.html | 422 |
1 files changed, 382 insertions, 40 deletions
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"> </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"> </span><br /><span class="label"><a + id="x22-144002r2"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Attribute</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">attribute1</span><span +class="ec-lmtt-9">:</span><span +class="ec-lmtt-9"> </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"> </span><span +class="ec-lmtt-9">attribute</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144003r3"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Attribute</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"> </span><span +class="ec-lmtt-9">float32</span><span +class="ec-lmtt-9"> </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"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">another</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144004r4"></a></span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144005r5"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">//</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">no</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">arguments</span><span +class="ec-lmtt-9">,</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">no</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">value</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144006r6"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Operation</span><span +class="ec-lmtt-9"> </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"> </span><span +class="ec-lmssbx-10x-x-90">void</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">{</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144007r7"></a></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">UserCodeLine1</span><span +class="ec-lmtt-9">"</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144008r8"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">}</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144009r9"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">//</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">argument</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9">,</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">no</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">value</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144010r10"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Operation</span><span +class="ec-lmtt-9"> </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">int32</span><span +class="ec-lmtt-9">)</span><span +class="ec-lmtt-9">:</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">void</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">{</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144011r11"></a></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">UserCodeLine1</span><span +class="ec-lmtt-9">"</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144012r12"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">}</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144013r13"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">//</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">argument</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9">,</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">value</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144014r14"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Operation</span><span +class="ec-lmtt-9"> </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"> </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"> </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"> </span><br /><span class="label"><a + id="x22-144015r15"></a></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">UserCodeLine1</span><span +class="ec-lmtt-9">"</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144016r16"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">}</span><span +class="ec-lmtt-9"> </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’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"> </span><span +class="ec-lmtt-9">DataClass2</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">{</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144019r2"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Attribute</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">attribute1</span><span +class="ec-lmtt-9">:</span><span +class="ec-lmtt-9"> </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"> </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"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">type</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144020r3"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Attribute</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"> </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"> </span><span +class="ec-lmtt-9">attribute</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">of</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">DataClass</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144021r4"></a></span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144022r5"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">//</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">arguments</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">and</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">value</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">by</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">value</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144023r6"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Operation</span><span +class="ec-lmtt-9"> </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"> </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">Param2</span><span +class="ec-lmtt-9">:</span><span +class="ec-lmtt-9"> </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"> </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"> </span><br /><span class="label"><a + id="x22-144024r7"></a></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">UserCodeLine1</span><span +class="ec-lmtt-9">"</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144025r8"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">}</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144026r9"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">//</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">arguments</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">and</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">value</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">by</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">reference</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">except</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">for</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">primitive</span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">types</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144027r10"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmssbx-10x-x-90">Operation</span><span +class="ec-lmtt-9"> </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">int32</span><span +class="ec-lmtt-9">,</span><span +class="ec-lmtt-9"> </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">DataClass1</span><span +class="ec-lmtt-9"> </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">DataClass1</span><span +class="ec-lmtt-9"> </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><br /><span class="label"><a + id="x22-144028r11"></a></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">UserCodeLine1</span><span +class="ec-lmtt-9">"</span><span +class="ec-lmtt-9"> </span><br /><span class="label"><a + id="x22-144029r12"></a></span><span +class="ec-lmtt-9"> </span><span +class="ec-lmtt-9">}</span><span +class="ec-lmtt-9"> </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> |