| <?xml version="1.0" encoding="UTF-8"?> |
| <xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:RTCppProperties="http://www.eclipse.org/papyrus/umlrt/cppproperties" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:UMLRealTimeStateMach="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML"> |
| <uml:Model xmi:id="_tzIaUAisEeaV0N0RGPomwA" name="RootElement"> |
| <packagedElement xmi:type="uml:Package" xmi:id="_xr2YUAisEeaV0N0RGPomwA" name="ServiceProtocol" URI=""> |
| <packagedElement xmi:type="uml:Collaboration" xmi:id="_xorIgAisEeaV0N0RGPomwA" name="ServiceProtocol"> |
| <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_xsAJUAisEeaV0N0RGPomwA" client="_xorIgAisEeaV0N0RGPomwA" supplier="_xr8e8AisEeaV0N0RGPomwA" contract="_xr8e8AisEeaV0N0RGPomwA"/> |
| <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_xsKhYAisEeaV0N0RGPomwA" client="_xorIgAisEeaV0N0RGPomwA" supplier="_xsHeEAisEeaV0N0RGPomwA" contract="_xsHeEAisEeaV0N0RGPomwA"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Interface" xmi:id="_xr8e8AisEeaV0N0RGPomwA" name="ServiceProtocol"> |
| <ownedOperation xmi:type="uml:Operation" xmi:id="_0kQxEAjGEeaciOTelCiuFQ" name="query"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Interface" xmi:id="_xsClkAisEeaV0N0RGPomwA" name="ServiceProtocol~"> |
| <ownedOperation xmi:type="uml:Operation" xmi:id="_IeYDAAivEeaV0N0RGPomwA" name="answer"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Usage" xmi:id="_xsFo4AisEeaV0N0RGPomwA" client="_xorIgAisEeaV0N0RGPomwA" supplier="_xsClkAisEeaV0N0RGPomwA"/> |
| <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_xsG3AAisEeaV0N0RGPomwA" name="*"/> |
| <packagedElement xmi:type="uml:Interface" xmi:id="_xsHeEAisEeaV0N0RGPomwA" name="ServiceProtocolIO"/> |
| <packagedElement xmi:type="uml:Usage" xmi:id="_xsLvgAisEeaV0N0RGPomwA" client="_xorIgAisEeaV0N0RGPomwA" supplier="_xsHeEAisEeaV0N0RGPomwA"/> |
| <packagedElement xmi:type="uml:CallEvent" xmi:id="_IecUcAivEeaV0N0RGPomwA" operation="_IeYDAAivEeaV0N0RGPomwA"/> |
| <packagedElement xmi:type="uml:CallEvent" xmi:id="_0kRYIAjGEeaciOTelCiuFQ" operation="_0kQxEAjGEeaciOTelCiuFQ"/> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Class" xmi:id="_Po-BcAivEeaV0N0RGPomwA" name="Top" isActive="true"> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_w8tTAAivEeaV0N0RGPomwA" name="server" visibility="protected" type="_RJupkAivEeaV0N0RGPomwA" isOrdered="true" aggregation="composite"> |
| <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w81O0AivEeaV0N0RGPomwA" value="1"/> |
| <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w81O0QivEeaV0N0RGPomwA" value="1"/> |
| </ownedAttribute> |
| <ownedAttribute xmi:type="uml:Property" xmi:id="_y9Z_cAivEeaV0N0RGPomwA" name="client" visibility="protected" type="_SbM4gAivEeaV0N0RGPomwA" isOrdered="true" aggregation="composite"> |
| <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y9cbsAivEeaV0N0RGPomwA" value="1"/> |
| <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y9dCwAivEeaV0N0RGPomwA" value="1"/> |
| </ownedAttribute> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Class" xmi:id="_RJupkAivEeaV0N0RGPomwA" name="Server" classifierBehavior="_n8_mAAivEeaV0N0RGPomwA" isActive="true"> |
| <ownedAttribute xmi:type="uml:Port" xmi:id="_XUxPgAivEeaV0N0RGPomwA" name="requests" visibility="public" type="_xorIgAisEeaV0N0RGPomwA" isOrdered="true" aggregation="composite" isBehavior="true"> |
| <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XU-q4AivEeaV0N0RGPomwA" value="1"/> |
| <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XU-q4QivEeaV0N0RGPomwA" value="1"/> |
| </ownedAttribute> |
| <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_n8_mAAivEeaV0N0RGPomwA" name="StateMachine" isReentrant="false"> |
| <region xmi:type="uml:Region" xmi:id="_n9QrwAivEeaV0N0RGPomwA" name="Region"> |
| <transition xmi:type="uml:Transition" xmi:id="_OhZTYAjFEeaciOTelCiuFQ" name="t0" source="_n9WyYAivEeaV0N0RGPomwA" target="_8OcPgAi7EeaciOTelCiuFQ"> |
| <effect xmi:type="uml:OpaqueBehavior" xmi:id="_sNmWMAjIEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST << " initializing" << endl; |
| //cout << CAPINST << " - registering SPP" << endl; |
| // |
| //int registration = requests.registerSPP("some_service"); |
| //if (!registration) { |
| // cout << CAPINST << " - registration unsuccesful" << endl; |
| // context()->perror("ERROR"); |
| //} |
| //else { |
| // cout << CAPINST << " - registration succesful" << endl; |
| //} |
| </body> |
| </effect> |
| </transition> |
| <transition xmi:type="uml:Transition" xmi:id="_QhHvcAjFEeaciOTelCiuFQ" name="t1" source="_8OcPgAi7EeaciOTelCiuFQ" target="_MGRUwAjFEeaciOTelCiuFQ"> |
| <effect xmi:type="uml:OpaqueBehavior" xmi:id="_1MvJgAjKEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " query received" << endl; |
| logMsg(); |
| </body> |
| </effect> |
| <trigger xmi:type="uml:Trigger" xmi:id="_6Po_gAjGEeaciOTelCiuFQ" event="_0kRYIAjGEeaciOTelCiuFQ" port="_XUxPgAivEeaV0N0RGPomwA"/> |
| </transition> |
| <subvertex xmi:type="uml:Pseudostate" xmi:id="_n9WyYAivEeaV0N0RGPomwA"> |
| <name xsi:nil="true"/> |
| </subvertex> |
| <subvertex xmi:type="uml:State" xmi:id="_8OcPgAi7EeaciOTelCiuFQ" name="Listening"> |
| <entry xmi:type="uml:OpaqueBehavior" xmi:id="_shY_cAjJEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " waiting for a query" << endl; |
| </body> |
| </entry> |
| </subvertex> |
| <subvertex xmi:type="uml:State" xmi:id="_MGRUwAjFEeaciOTelCiuFQ" name="Replied"> |
| <entry xmi:type="uml:OpaqueBehavior" xmi:id="_7Nx7YAjJEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " sending reply" << endl; |
| requests.answer().send(); |
| cout << CAPINST_STATE << " reply sent" << endl; |
| </body> |
| </entry> |
| </subvertex> |
| </region> |
| </ownedBehavior> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Class" xmi:id="_SbM4gAivEeaV0N0RGPomwA" name="Client" classifierBehavior="_pGBDkAivEeaV0N0RGPomwA" isActive="true"> |
| <ownedAttribute xmi:type="uml:Port" xmi:id="_jAlWYAivEeaV0N0RGPomwA" name="requests" visibility="protected" type="_xorIgAisEeaV0N0RGPomwA" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="true" isService="false"> |
| <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jAoZsAivEeaV0N0RGPomwA" value="1"/> |
| <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jApAwAivEeaV0N0RGPomwA" value="1"/> |
| </ownedAttribute> |
| <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_pGBDkAivEeaV0N0RGPomwA" name="StateMachine" isReentrant="false"> |
| <region xmi:type="uml:Region" xmi:id="_pGDf0AivEeaV0N0RGPomwA" name="Region"> |
| <transition xmi:type="uml:Transition" xmi:id="_5OgvIAjFEeaciOTelCiuFQ" name="t0" source="_pGEt8AivEeaV0N0RGPomwA" target="_yIVrkAsTEeaj4Y9aztUtzg"> |
| <effect xmi:type="uml:OpaqueBehavior" xmi:id="_f_gMMAjJEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST << " initializing" << endl; |
| //cout << CAPINST << " - registering SAP" << endl; |
| // |
| //int registration = requests.registerSAP("some_service"); |
| //if (!registration) { |
| // cout << CAPINST << " - registration unsuccesful" << endl; |
| // context()->perror("ERROR"); |
| //} |
| //else { |
| // cout << CAPINST << " - registration succesful" << endl; |
| //} |
| </body> |
| </effect> |
| </transition> |
| <transition xmi:type="uml:Transition" xmi:id="_6ltLkAjFEeaciOTelCiuFQ" name="t2" source="_vqlh0AjFEeaciOTelCiuFQ" target="_winWAAjFEeaciOTelCiuFQ"> |
| <effect xmi:type="uml:OpaqueBehavior" xmi:id="_8kQJoAjKEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " answer received" << endl; |
| logMsg(); |
| </body> |
| </effect> |
| <trigger xmi:type="uml:Trigger" xmi:id="_M2-uEAjHEeaciOTelCiuFQ" event="_IecUcAivEeaV0N0RGPomwA" port="_jAlWYAivEeaV0N0RGPomwA"/> |
| </transition> |
| <transition xmi:type="uml:Transition" xmi:id="_-FfaEAsTEeaj4Y9aztUtzg" name="t1" source="_yIVrkAsTEeaj4Y9aztUtzg" target="_vqlh0AjFEeaciOTelCiuFQ"> |
| <trigger xmi:type="uml:Trigger" xmi:id="_zfZIoAsUEeaj4Y9aztUtzg" port="_jAlWYAivEeaV0N0RGPomwA"> |
| <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_PQtAwOzeEeSRtqCWFwOf8g"/> |
| </trigger> |
| </transition> |
| <subvertex xmi:type="uml:Pseudostate" xmi:id="_pGEt8AivEeaV0N0RGPomwA"> |
| <name xsi:nil="true"/> |
| </subvertex> |
| <subvertex xmi:type="uml:State" xmi:id="_vqlh0AjFEeaciOTelCiuFQ" name="Asking"> |
| <entry xmi:type="uml:OpaqueBehavior" xmi:id="_aGzeAAjKEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " port bound; sending request" << endl; |
| requests.query().send(); |
| cout << CAPINST_STATE << " request sent" << endl; |
| </body> |
| </entry> |
| </subvertex> |
| <subvertex xmi:type="uml:State" xmi:id="_winWAAjFEeaciOTelCiuFQ" name="Answered"> |
| <entry xmi:type="uml:OpaqueBehavior" xmi:id="_gCRW4AjKEeaciOTelCiuFQ"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " request answered" << endl; |
| </body> |
| </entry> |
| </subvertex> |
| <subvertex xmi:type="uml:State" xmi:id="_yIVrkAsTEeaj4Y9aztUtzg" name="WaitingForService"> |
| <entry xmi:type="uml:OpaqueBehavior" xmi:id="_JpUpoAsUEeaj4Y9aztUtzg"> |
| <language>C++</language> |
| <body>cout << CAPINST_STATE << " waiting for the requests port to bind" << endl;</body> |
| </entry> |
| </subvertex> |
| </region> |
| </ownedBehavior> |
| </packagedElement> |
| <packagedElement xmi:type="uml:Artifact" xmi:id="__JsUIAjFEeaciOTelCiuFQ" name="UtilityMacros" fileName="utility_macros"/> |
| <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_t5FRUAisEeaV0N0RGPomwA"> |
| <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t5HtkAisEeaV0N0RGPomwA" source="http://www.eclipse.org/uml2/2.0.0/UML"> |
| <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/> |
| </eAnnotations> |
| <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/> |
| </profileApplication> |
| <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_t6NSsAisEeaV0N0RGPomwA"> |
| <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6NSsQisEeaV0N0RGPomwA" source="http://www.eclipse.org/uml2/2.0.0/UML"> |
| <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/> |
| </eAnnotations> |
| <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/> |
| </profileApplication> |
| <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_v1vyUAisEeaV0N0RGPomwA"> |
| <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v1wZYAisEeaV0N0RGPomwA" source="http://www.eclipse.org/uml2/2.0.0/UML"> |
| <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/> |
| </eAnnotations> |
| <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/> |
| </profileApplication> |
| </uml:Model> |
| <UMLRealTime:ProtocolContainer xmi:id="_xr6pwAisEeaV0N0RGPomwA" base_Package="_xr2YUAisEeaV0N0RGPomwA"/> |
| <UMLRealTime:RTMessageSet xmi:id="_xr-7MAisEeaV0N0RGPomwA" base_Interface="_xr8e8AisEeaV0N0RGPomwA"/> |
| <UMLRealTime:RTMessageSet xmi:id="_xsFB0AisEeaV0N0RGPomwA" base_Interface="_xsClkAisEeaV0N0RGPomwA" rtMsgKind="out"/> |
| <UMLRealTime:RTMessageSet xmi:id="_xsJ6UAisEeaV0N0RGPomwA" base_Interface="_xsHeEAisEeaV0N0RGPomwA" rtMsgKind="inOut"/> |
| <UMLRealTime:Protocol xmi:id="_xsMWkAisEeaV0N0RGPomwA" base_Collaboration="_xorIgAisEeaV0N0RGPomwA"/> |
| <UMLRealTime:Capsule xmi:id="_PqnAMAivEeaV0N0RGPomwA" base_Class="_Po-BcAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:Capsule xmi:id="_RJ2lYAivEeaV0N0RGPomwA" base_Class="_RJupkAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:Capsule xmi:id="_SbUNQAivEeaV0N0RGPomwA" base_Class="_SbM4gAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:RTPort xmi:id="_XU_5AAivEeaV0N0RGPomwA" isPublish="true" isWired="false" base_Port="_XUxPgAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:RTPort xmi:id="_jApn0AivEeaV0N0RGPomwA" isNotification="true" isWired="false" base_Port="_jAlWYAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTPseudostate xmi:id="_n9hxgAivEeaV0N0RGPomwA" base_Pseudostate="_n9WyYAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTRegion xmi:id="_n9jmsAivEeaV0N0RGPomwA" base_Region="_n9QrwAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTStateMachine xmi:id="_n90scAivEeaV0N0RGPomwA" base_StateMachine="_n8_mAAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTPseudostate xmi:id="_pGGjIAivEeaV0N0RGPomwA" base_Pseudostate="_pGEt8AivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTRegion xmi:id="_pGHKMAivEeaV0N0RGPomwA" base_Region="_pGDf0AivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTStateMachine xmi:id="_pGJmcAivEeaV0N0RGPomwA" base_StateMachine="_pGBDkAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:CapsulePart xmi:id="_w81O0givEeaV0N0RGPomwA" base_Property="_w8tTAAivEeaV0N0RGPomwA"/> |
| <UMLRealTime:CapsulePart xmi:id="_y9dCwQivEeaV0N0RGPomwA" base_Property="_y9Z_cAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTState xmi:id="_91z18Ai7EeaciOTelCiuFQ" base_State="_8OcPgAi7EeaciOTelCiuFQ"/> |
| <UMLRealTimeStateMach:RTState xmi:id="_NKXPAAjFEeaciOTelCiuFQ" base_State="_MGRUwAjFEeaciOTelCiuFQ"/> |
| <UMLRealTimeStateMach:RTState xmi:id="_xfnw0AjFEeaciOTelCiuFQ" base_State="_vqlh0AjFEeaciOTelCiuFQ"/> |
| <UMLRealTimeStateMach:RTState xmi:id="_yS62AAjFEeaciOTelCiuFQ" base_State="_winWAAjFEeaciOTelCiuFQ"/> |
| <RTCppProperties:ArtifactProperties xmi:id="__9RtMAjFEeaciOTelCiuFQ" base_Artifact="__JsUIAjFEeaciOTelCiuFQ" includeFile="#define CAPINST "[" << name() << ":" << getTypeName() << "]"
#define FCAPINST "[" << name() << ":" << getTypeName() << "::" << getName() << "[" << getIndex() << "]]"
#define CAPINST_STATE CAPINST << "(" << getCurrentStateString() << ")"
#define FCAPINST_STATE FCAPINST << "(" << getCurrentStateString() << ")"
"/> |
| <RTCppProperties:CapsuleProperties xmi:id="_cFhKQAjGEeaciOTelCiuFQ" headerPreface="#include <iostream>
#include "utility_macros.hh"

using namespace std;
" base_Class="_RJupkAivEeaV0N0RGPomwA"/> |
| <RTCppProperties:CapsuleProperties xmi:id="_jlC24AjGEeaciOTelCiuFQ" headerPreface="#include <iostream>
#include "utility_macros.hh"

using namespace std;
" base_Class="_SbM4gAivEeaV0N0RGPomwA"/> |
| <UMLRealTimeStateMach:RTState xmi:id="_2zhoUAsTEeaj4Y9aztUtzg" base_State="_yIVrkAsTEeaj4Y9aztUtzg"/> |
| </xmi:XMI> |