blob: 04100a0e31fe6cd27a957c634e335ce1d7719ba7 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
<uml:Model xmi:id="_nhjakJnsEeeCzKHJj7Wq7w" name="statemachine">
<packagedElement xmi:type="uml:Enumeration" xmi:id="_hNs5oCdSEea6h5xPEh8iAg" name="ThreadFunctions">
<ownedLiteral xmi:id="_kWR0ICdSEea6h5xPEh8iAg" name="TF_CHANGE_EVENT"/>
<ownedLiteral xmi:id="_tj4MICdSEea6h5xPEh8iAg" name="TF_TIME_EVENT"/>
<ownedLiteral xmi:id="_nY3bYCdSEea6h5xPEh8iAg" name="TF_DO_ACTIVITY"/>
<ownedLiteral xmi:id="_pgWsUCdSEea6h5xPEh8iAg" name="TF_ENTER_REGION"/>
<ownedLiteral xmi:id="_sGQXkCdSEea6h5xPEh8iAg" name="TF_EXIT_REGION"/>
<ownedLiteral xmi:id="_uSWbsCdSEea6h5xPEh8iAg" name="TF_TRANSITION"/>
<ownedLiteral xmi:id="_BF78sD0vEeaKAZ77fvU8gg" name="TF_STATE_MACHINE_TYPE"/>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_uYyt0CdFEea3Ob5UfxuCGA" name="SystemStateEnum_t">
<ownedLiteral xmi:id="_ER5vICdGEea3Ob5UfxuCGA" name="IDLE"/>
<ownedLiteral xmi:id="_FvfugCdGEea3Ob5UfxuCGA" name="EVENT_PROCESSING"/>
<ownedLiteral xmi:id="_GPdA8CdGEea3Ob5UfxuCGA" name="EVENT_DEFERRED"/>
<ownedLiteral xmi:id="_GrYH8CdGEea3Ob5UfxuCGA" name="EVENT_CONSUMED"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_4Z1UwCmREearkPe7QerpcQ" name="StructForThread_t">
<ownedAttribute xmi:id="_jliRwCkVEea0-deBroAIbQ" name="ptr">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mnUAsCkVEea0-deBroAIbQ" name="id">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_p12ZQCkVEea0-deBroAIbQ" name="enter_mode">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_rzKagCkVEea0-deBroAIbQ" name="func_type">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_trCiICkVEea0-deBroAIbQ" name="duration">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedOperation xmi:id="_ZmpmwCkVEea0-deBroAIbQ" name="StructForThread_t">
<ownedParameter xmi:id="_E56cgCkWEea0-deBroAIbQ" name="ptr">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_HmMckCkWEea0-deBroAIbQ" name="id">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_M6HNQCkWEea0-deBroAIbQ" name="enter_mode">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_PO3eICkWEea0-deBroAIbQ" name="func_type">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_Q9zFICkWEea0-deBroAIbQ" name="duration">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_-pXrgCkVEea0-deBroAIbQ" name="StructForThread_t"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_dWxYQD0zEeaQfbTekb55bw" name="EventPriorityQueue">
<ownedAttribute xmi:id="_dWxYQT0zEeaQfbTekb55bw" name="data" visibility="private" type="_MyJIUD0zEeaQfbTekb55bw"/>
<ownedAttribute xmi:id="_dWxYQj0zEeaQfbTekb55bw" name="size">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYQz0zEeaQfbTekb55bw" name="numberOfElements">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYRD0zEeaQfbTekb55bw" name="readPos">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYRT0zEeaQfbTekb55bw" name="writePos">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYRj0zEeaQfbTekb55bw" name="mutex">
<type xmi:type="uml:Class" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/pthread.uml#__niwsCa0EeazPcQ6-9hBeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYRz0zEeaQfbTekb55bw" name="cond">
<type xmi:type="uml:Class" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/pthread.uml#_-vYZoCa0EeazPcQ6-9hBeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYSD0zEeaQfbTekb55bw" name="isLock">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYST0zEeaQfbTekb55bw" name="completionEvents" type="_MyJIUD0zEeaQfbTekb55bw"/>
<ownedAttribute xmi:id="_dWxYSj0zEeaQfbTekb55bw" name="compSize">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYSz0zEeaQfbTekb55bw" name="compNumbers">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYTD0zEeaQfbTekb55bw" name="compReadPos">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYTT0zEeaQfbTekb55bw" name="compWritePos">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYTj0zEeaQfbTekb55bw" name="deferreds" type="_MyJIUD0zEeaQfbTekb55bw"/>
<ownedAttribute xmi:id="_dWxYTz0zEeaQfbTekb55bw" name="numberOfDeferreds">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYUD0zEeaQfbTekb55bw" name="readDef">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_dWxYUT0zEeaQfbTekb55bw" name="writeDef">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWxYUj0zEeaQfbTekb55bw" name="EventPriorityQueue" specification="_dWx_XD0zEeaQfbTekb55bw">
<language>C++</language>
<body>mutex = PTHREAD_MUTEX_INITIALIZER;&#xD;
cond = PTHREAD_COND_INITIALIZER;&#xD;
isLock = false;</body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWxYUz0zEeaQfbTekb55bw" name="push" specification="_dWx_Vj0zEeaQfbTekb55bw">
<language>C++</language>
<body>statemachine::Event_t* ret = NULL;&#xD;
if (EVENT_DATA_SIZE &lt;= dataSize) {&#xD;
return;&#xD;
}&#xD;
pthread_mutex_lock(&amp;mutex);&#xD;
while(isLock) {&#xD;
pthread_cond_wait(&amp;cond, &amp;mutex);&#xD;
}&#xD;
if (compNumbers &lt; compSize &amp;&amp; eventType == statemachine::COMPLETION_EVENT) {&#xD;
ret = &amp;(this->completionEvents[compWritePos]);&#xD;
compNumbers++;&#xD;
ret->priority = priority;&#xD;
memcpy(ret->data, data, dataSize);&#xD;
ret->eventID = eventID;&#xD;
ret->eventType = eventType;&#xD;
ret->associatedState = associatedState;&#xD;
compWritePos = (compWritePos+1)%compSize;&#xD;
} else if (numberOfElements &lt; size) {&#xD;
ret = &amp;(this->data[writePos]);&#xD;
numberOfElements++;&#xD;
ret->priority = priority;&#xD;
memcpy(ret->data, data, dataSize);&#xD;
ret->eventID = eventID;&#xD;
ret->eventType = eventType;&#xD;
ret->associatedState = associatedState;&#xD;
writePos = (writePos+1)%size;&#xD;
}&#xD;
isLock = false;&#xD;
pthread_cond_signal(&amp;cond);&#xD;
pthread_mutex_unlock(&amp;mutex);</body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWxYVD0zEeaQfbTekb55bw" name="pop" specification="_dWx_Uj0zEeaQfbTekb55bw">
<language>C++</language>
<body>statemachine::Event_t* ret = NULL;&#xD;
pthread_mutex_lock(&amp;mutex);&#xD;
while(isLock) {&#xD;
pthread_cond_wait(&amp;cond, &amp;mutex);&#xD;
}&#xD;
if (compNumbers > 0) {&#xD;
ret = &amp;completionEvents[compReadPos];&#xD;
compNumbers--;&#xD;
compReadPos = (compReadPos + 1) % compSize;&#xD;
} else if (popDeferred &amp;&amp; (numberOfDeferreds > 0)) {&#xD;
ret = &amp;deferreds[readDef];&#xD;
numberOfDeferreds--;&#xD;
readDef = (readDef + 1) % defSize;&#xD;
}&#xD;
if ((ret == NULL) &amp;&amp; (numberOfElements > 0)) {&#xD;
ret = &amp;data[readPos];&#xD;
numberOfElements--;&#xD;
readPos = (readPos+1)%size;&#xD;
}&#xD;
&#xD;
if ((ret == NULL) &amp;&amp; (numberOfDeferreds > 0)) {&#xD;
ret = &amp;deferreds[readDef];&#xD;
numberOfDeferreds--;&#xD;
readDef = (readDef + 1) % defSize;&#xD;
}&#xD;
&#xD;
isLock = false;&#xD;
pthread_cond_signal(&amp;cond);&#xD;
pthread_mutex_unlock(&amp;mutex);&#xD;
return ret;</body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWx_UD0zEeaQfbTekb55bw" name="saveDeferred" specification="_dWx_Xj0zEeaQfbTekb55bw">
<language>C++</language>
<body>if (numberOfDeferreds &lt; defSize) {&#xD;
deferreds[writeDef].priority = defe.priority;&#xD;
memcpy(&amp;deferreds[writeDef].data, &amp;defe.data, sizeof(defe.data));&#xD;
deferreds[writeDef].eventID = defe.eventID;&#xD;
deferreds[writeDef].eventType = defe.eventType;&#xD;
deferreds[writeDef].associatedState = defe.associatedState;&#xD;
numberOfDeferreds++;&#xD;
writeDef = (writeDef + 1) % defSize;&#xD;
}&#xD;
</body>
</ownedBehavior>
<ownedOperation xmi:id="_dWx_XD0zEeaQfbTekb55bw" name="EventPriorityQueue" method="_dWxYUj0zEeaQfbTekb55bw"/>
<ownedOperation xmi:id="_dWx_Vj0zEeaQfbTekb55bw" name="push" method="_dWxYUz0zEeaQfbTekb55bw">
<ownedParameter xmi:id="_dWx_Vz0zEeaQfbTekb55bw" name="priority" type="_Mx4poD0zEeaQfbTekb55bw"/>
<ownedParameter xmi:id="_dWx_WD0zEeaQfbTekb55bw" name="data">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_dWx_WT0zEeaQfbTekb55bw" name="eventID">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_dWx_Wj0zEeaQfbTekb55bw" name="eventType" type="_MyIhQD0zEeaQfbTekb55bw"/>
<ownedParameter xmi:id="_dWx_Wz0zEeaQfbTekb55bw" name="associatedState">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedParameter>
<ownedParameter xmi:id="_GU_bcEVGEeaqgqiOqzyU4w" name="dataSize">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
<defaultValue xmi:type="uml:LiteralInteger" xmi:id="_GU_bcUVGEeaqgqiOqzyU4w"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_dWx_Uj0zEeaQfbTekb55bw" name="pop" method="_dWxYVD0zEeaQfbTekb55bw">
<ownedParameter xmi:id="_dWx_Uz0zEeaQfbTekb55bw" name="ret" type="_MyJIUD0zEeaQfbTekb55bw" direction="return"/>
<ownedParameter xmi:id="_dWx_VD0zEeaQfbTekb55bw" name="popDeferred">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_dWx_VT0zEeaQfbTekb55bw"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_dWx_Xj0zEeaQfbTekb55bw" name="saveDeferred" method="_dWx_UD0zEeaQfbTekb55bw">
<ownedParameter xmi:id="_dWx_Xz0zEeaQfbTekb55bw" name="defe" type="_MyJIUD0zEeaQfbTekb55bw"/>
</ownedOperation>
<ownedOperation xmi:id="_dWx_XT0zEeaQfbTekb55bw" name="heapify" visibility="private"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_MyJIUD0zEeaQfbTekb55bw" name="Event_t">
<ownedAttribute xmi:id="_MyJIUT0zEeaQfbTekb55bw" name="priority" type="_Mx4poD0zEeaQfbTekb55bw">
<defaultValue xmi:type="uml:InstanceValue" xmi:id="_MyJIUj0zEeaQfbTekb55bw" instance="_Mx4poj0zEeaQfbTekb55bw"/>
</ownedAttribute>
<ownedAttribute xmi:id="_MyJIUz0zEeaQfbTekb55bw" name="data">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_MyJIVD0zEeaQfbTekb55bw" name="eventID">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
<ownedAttribute xmi:id="_MyJIVT0zEeaQfbTekb55bw" name="eventType" type="_MyIhQD0zEeaQfbTekb55bw"/>
<ownedAttribute xmi:id="_MyJIVj0zEeaQfbTekb55bw" name="associatedState">
<type xmi:type="uml:PrimitiveType" href="/ComplexSM_defaultNode_ComplexSMDepPlan/model/AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_Mx4poD0zEeaQfbTekb55bw" name="EventPriority_t">
<ownedLiteral xmi:id="_Mx4poT0zEeaQfbTekb55bw" name="PRIORITY_1"/>
<ownedLiteral xmi:id="_Mx4poj0zEeaQfbTekb55bw" name="PRIORITY_2"/>
<ownedLiteral xmi:id="_Mx4poz0zEeaQfbTekb55bw" name="PRIORITY_3"/>
<ownedLiteral xmi:id="_Mx4ppD0zEeaQfbTekb55bw" name="PRIORITY_4"/>
<ownedLiteral xmi:id="_Mx4ppT0zEeaQfbTekb55bw" name="PRIORITY_5"/>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_MyIhQD0zEeaQfbTekb55bw" name="EventType_t">
<ownedLiteral xmi:id="_MyIhQT0zEeaQfbTekb55bw" name="SIGNAL_EVENT"/>
<ownedLiteral xmi:id="_MyIhQj0zEeaQfbTekb55bw" name="CALL_EVENT"/>
<ownedLiteral xmi:id="_MyIhQz0zEeaQfbTekb55bw" name="TIME_EVENT"/>
<ownedLiteral xmi:id="_MyIhRD0zEeaQfbTekb55bw" name="CHANGE_EVENT"/>
<ownedLiteral xmi:id="_MyIhRT0zEeaQfbTekb55bw" name="COMPLETION_EVENT"/>
</packagedElement>
<profileApplication xmi:id="_e8kikOUUEd-P08Bciq_LqQ">
<eAnnotations xmi:id="_fAD7cOUUEd-P08Bciq_LqQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
</eAnnotations>
<appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
</profileApplication>
<profileApplication xmi:id="_cnmBUBE1EeG3cfLoiI6G7g">
<eAnnotations xmi:id="_cz4J0BE1EeG3cfLoiI6G7g" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
</eAnnotations>
<appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
</profileApplication>
<profileApplication xmi:id="_54PeIGH8EeWEu6399scseQ">
<eAnnotations xmi:id="_54R6YGH8EeWEu6399scseQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
</eAnnotations>
<appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
</profileApplication>
<profileApplication xmi:id="_9ko48GoMEea1-rBQVLBwEw">
<eAnnotations xmi:id="_9kz4EGoMEea1-rBQVLBwEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/Transformation/1#/"/>
</eAnnotations>
<appliedProfile href="pathmap://TRAFO_PROFILE/Transformation.profile.uml#_fPDsIBa-EearhdjjJ6cVzQ"/>
</profileApplication>
</uml:Model>
<C_Cpp:Include xmi:id="_nhjalpnsEeeCzKHJj7Wq7w" header="// common definitions for statemachine&#xA;&#xA;#define TIME_EVENT_LOWER_BOUND (0)&#xA;#define CHANGE_EVENT_LOWER_BOUND (2)&#xA;#define TE_INDEX(id) (id - TIME_EVENT_LOWER_BOUND)&#xA;#define CHE_INDEX(id) (id - CHANGE_EVENT_LOWER_BOUND)&#xA;#define SMSERVER_REGION0_DEFAULT (0)&#xA;#define SMSERVER_REGION0 (0)&#xA;#include &quot;time.h&quot;&#xA;#include &quot;pthread.h&quot;&#xA;#define CHECKPOINT if (systemState == statemachine::EVENT_PROCESSING) {return;}" base_package="_nhjakJnsEeeCzKHJj7Wq7w"/>
<C_Cpp:Ptr xmi:id="_nh0gUJnsEeeCzKHJj7Wq7w" base_property="_jliRwCkVEea0-deBroAIbQ"/>
<standard:Create xmi:id="_niP-IJnsEeeCzKHJj7Wq7w" base_BehavioralFeature="_ZmpmwCkVEea0-deBroAIbQ"/>
<C_Cpp:ConstInit xmi:id="_niQlMJnsEeeCzKHJj7Wq7w" initialisation="ptr(ptr), id(id), enter_mode(enter_mode), func_type(func_type), duration(duration)" base_operation="_ZmpmwCkVEea0-deBroAIbQ"/>
<C_Cpp:Ptr xmi:id="_niRMQJnsEeeCzKHJj7Wq7w" base_parameter="_E56cgCkWEea0-deBroAIbQ"/>
<standard:Create xmi:id="_nigc0JnsEeeCzKHJj7Wq7w" base_BehavioralFeature="_-pXrgCkVEea0-deBroAIbQ"/>
<C_Cpp:Include xmi:id="_nivtYJnsEeeCzKHJj7Wq7w" header="#include &quot;pthread.h&quot;&#xD;&#xA;#include &quot;stdio.h&quot;&#xD;&#xA;#include &quot;string.h&quot;&#xD;&#xA;&#xD;&#xA;#define defSize (10)" base_class="_dWxYQD0zEeaQfbTekb55bw" base_Classifier="_dWxYQD0zEeaQfbTekb55bw"/>
<C_Cpp:Include xmi:id="_ni3CIJnsEeeCzKHJj7Wq7w" header="#define EVENT_DATA_SIZE (50)" base_class="_MyJIUD0zEeaQfbTekb55bw" base_Classifier="_MyJIUD0zEeaQfbTekb55bw"/>
<C_Cpp:Array xmi:id="_ni4QQJnsEeeCzKHJj7Wq7w" definition="[EVENT_DATA_SIZE]" base_property="_MyJIUz0zEeaQfbTekb55bw"/>
<C_Cpp:Array xmi:id="_njAMEJnsEeeCzKHJj7Wq7w" definition="[10]" base_property="_dWxYQT0zEeaQfbTekb55bw"/>
<C_Cpp:Array xmi:id="_njFroZnsEeeCzKHJj7Wq7w" definition="[4]" base_property="_dWxYST0zEeaQfbTekb55bw"/>
<C_Cpp:Array xmi:id="_njHg0JnsEeeCzKHJj7Wq7w" definition="[defSize]" base_property="_dWxYTj0zEeaQfbTekb55bw"/>
<standard:Create xmi:id="_njJWAJnsEeeCzKHJj7Wq7w" base_BehavioralFeature="_dWx_XD0zEeaQfbTekb55bw"/>
<C_Cpp:ConstInit xmi:id="_njJWAZnsEeeCzKHJj7Wq7w" initialisation="size(10), numberOfElements(0), readPos(0), writePos(0), compSize(4), compNumbers(0), compReadPos(0), compWritePos(0), numberOfDeferreds(0), readDef(0), writeDef(0) " base_operation="_dWx_XD0zEeaQfbTekb55bw"/>
<C_Cpp:Ptr xmi:id="_njLLMJnsEeeCzKHJj7Wq7w" base_parameter="_dWx_WD0zEeaQfbTekb55bw"/>
<C_Cpp:Ptr xmi:id="_njNAYJnsEeeCzKHJj7Wq7w" base_parameter="_dWx_Uz0zEeaQfbTekb55bw"/>
<C_Cpp:Ref xmi:id="_njOOgJnsEeeCzKHJj7Wq7w" base_parameter="_dWx_Xz0zEeaQfbTekb55bw"/>
</xmi:XMI>