/* * instance operation: clearLapMarkers */ void Tracking_TrackLog::Tracking_TrackLog_op_clearLapMarkers( Tracking_TrackLog * self, Tracking * thismodule) { sys_sets::Escher_ObjectSet_s v_lapMarkers_space={0}; sys_sets::Escher_ObjectSet_s * v_lapMarkers = &v_lapMarkers_space; /* lapMarkers (LapMarker) */ Tracking_LapMarker * v_lapMarker; /* SELECT many lapMarkers RELATED BY self->LapMarker[R5] */ XTUML_OAL_STMT_TRACE( 1, "SELECT many lapMarkers RELATED BY self->LapMarker[R5]" ); thismodule->Escher_ClearSet( v_lapMarkers ); if ( 0 != self ) { thismodule->Escher_CopySet( v_lapMarkers, &self->LapMarker_R5 ); } /* FOR EACH lapMarker IN lapMarkers */ XTUML_OAL_STMT_TRACE( 1, "FOR EACH lapMarker IN lapMarkers" ); { sys_sets::Escher_Iterator_s iter1; Tracking_LapMarker * Tracking_LapMarkeriter1; Escher_IteratorReset( &iter1, v_lapMarkers ); while ( (Tracking_LapMarkeriter1 = (Tracking_LapMarker *)thismodule->Escher_IteratorNext( &iter1 )) != 0 ) { v_lapMarker = Tracking_LapMarkeriter1; { /* UNRELATE self FROM lapMarker ACROSS R5 */ XTUML_OAL_STMT_TRACE( 2, "UNRELATE self FROM lapMarker ACROSS R5" ); Tracking_LapMarker::Tracking_LapMarker_R5_Unlink( self, v_lapMarker, thismodule ); /* DELETE OBJECT INSTANCE lapMarker */ XTUML_OAL_STMT_TRACE( 2, "DELETE OBJECT INSTANCE lapMarker" ); if ( 0 == v_lapMarker ) { XTUML_EMPTY_HANDLE_TRACE( "LapMarker", "Escher_DeleteInstance" ); } thismodule->Escher_DeleteInstance( (Escher_iHandle_t) v_lapMarker, Tracking_DOMAIN_ID, Tracking_LapMarker_CLASS_NUMBER ); }}} thismodule->Escher_ClearSet( v_lapMarkers ); /* lapMarkers (LapMarker) */ }
/* * instance operation: clearHeartRateSamples */ void Tracking_TrackLog::Tracking_TrackLog_op_clearHeartRateSamples( Tracking_TrackLog * self, Tracking * thismodule) { sys_sets::Escher_ObjectSet_s v_samples_space={0}; sys_sets::Escher_ObjectSet_s * v_samples = &v_samples_space; /* samples (HeartRateSample) */ Tracking_HeartRateSample * v_sample; /* SELECT many samples RELATED BY self->HeartRateSample[R6] */ XTUML_OAL_STMT_TRACE( 1, "SELECT many samples RELATED BY self->HeartRateSample[R6]" ); thismodule->Escher_ClearSet( v_samples ); if ( 0 != self ) { thismodule->Escher_CopySet( v_samples, &self->HeartRateSample_R6 ); } /* FOR EACH sample IN samples */ XTUML_OAL_STMT_TRACE( 1, "FOR EACH sample IN samples" ); { sys_sets::Escher_Iterator_s iter2; Tracking_HeartRateSample * Tracking_HeartRateSampleiter2; Escher_IteratorReset( &iter2, v_samples ); while ( (Tracking_HeartRateSampleiter2 = (Tracking_HeartRateSample *)thismodule->Escher_IteratorNext( &iter2 )) != 0 ) { v_sample = Tracking_HeartRateSampleiter2; { /* UNRELATE self FROM sample ACROSS R6 */ XTUML_OAL_STMT_TRACE( 2, "UNRELATE self FROM sample ACROSS R6" ); Tracking_HeartRateSample::Tracking_HeartRateSample_R6_Unlink( self, v_sample, thismodule ); /* DELETE OBJECT INSTANCE sample */ XTUML_OAL_STMT_TRACE( 2, "DELETE OBJECT INSTANCE sample" ); if ( 0 == v_sample ) { XTUML_EMPTY_HANDLE_TRACE( "HeartRateSample", "Escher_DeleteInstance" ); } thismodule->Escher_DeleteInstance( (Escher_iHandle_t) v_sample, Tracking_DOMAIN_ID, Tracking_HeartRateSample_CLASS_NUMBER ); }}} thismodule->Escher_ClearSet( v_samples ); /* samples (HeartRateSample) */ }
/* * UNRELATE TrackLog FROM LapMarker ACROSS R5 */ void Tracking_LapMarker_R5_Unlink( Tracking_TrackLog * part, Tracking_LapMarker * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "LapMarker", "Tracking_LapMarker_R5_Unlink" ); return; } /* Note: LapMarker->TrackLog[R5] not navigated */ Escher_SetRemoveElement( &part->LapMarker_R5, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE TrackLog FROM HeartRateSample ACROSS R6 */ void Tracking_HeartRateSample_R6_Unlink( Tracking_TrackLog * part, Tracking_HeartRateSample * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "HeartRateSample", "Tracking_HeartRateSample_R6_Unlink" ); return; } /* Note: HeartRateSample->TrackLog[R6] not navigated */ Escher_SetRemoveElement( &part->HeartRateSample_R6, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE Goal FROM Achievement ACROSS R12 */ void Tracking_Achievement_R12_Unlink_has_recorded( Tracking_Goal * part, Tracking_Achievement * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "Achievement", "Tracking_Achievement_R12_Unlink_has_recorded" ); return; } /* Note: Achievement->Goal[R12] not navigated */ Escher_SetRemoveElement( &part->Achievement_R12_has_recorded, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE Goal FROM Achievement ACROSS R14 */ void Tracking_Achievement_R14_Unlink_has_open( Tracking_Goal * part, Tracking_Achievement * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "Achievement", "Tracking_Achievement_R14_Unlink_has_open" ); return; } form->Goal_R14_is_open_for = 0; part->Achievement_R14_has_open = 0; }
/* * RELATE buffer TO device ACROSS R2 */ void stringtest_device_R2_Link( stringtest_buffer * part, stringtest_device * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "device", "stringtest_device_R2_Link" ); return; } /* Note: device->buffer[R2] not navigated */ /* Note: buffer->device[R2] not navigated */ }
/* * UNRELATE TrackPoint FROM TrackLog ACROSS R1 */ void Tracking_TrackLog::Tracking_TrackLog_R1_Unlink( Tracking_TrackPoint * part, Tracking_TrackLog * form, Tracking * thismodule ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "TrackLog", "Tracking_TrackLog::Tracking_TrackLog_R1_Unlink" ); return; } form->TrackPoint_R1 = 0; /* Note: TrackPoint->TrackLog[R1] not navigated */ }
/* * UNRELATE VAL FROM OP ACROSS R3 */ void calc_OP_R3_Unlink( calc_VAL * part, calc_OP * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "OP", "calc_OP_R3_Unlink" ); return; } form->VAL_R3 = 0; /* Note: VAL->OP[R3] not navigated */ }
/* * UNRELATE O_OBJ FROM O_ATTR ACROSS R102 */ void masl2xtuml_O_ATTR_R102_Unlink_has_characteristics_abstracted_by( masl2xtuml_O_OBJ * part, masl2xtuml_O_ATTR * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "O_ATTR", "masl2xtuml_O_ATTR_R102_Unlink_has_characteristics_abstracted_by" ); return; } form->O_OBJ_R102_abstracts_characteristics_of = 0; Escher_SetRemoveElement( &part->O_ATTR_R102_has_characteristics_abstracted_by, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE D FROM C ACROSS R2 */ void assoc_unformal_C_R2_Unlink( assoc_unformal_D * part, assoc_unformal_C * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "C", "assoc_unformal_C_R2_Unlink" ); return; } form->D_R2 = 0; Escher_SetRemoveElement( &part->C_R2, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE B FROM A ACROSS R1 */ void perf_funcs_A_R1_Unlink( perf_funcs_B * part, perf_funcs_A * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "A", "perf_funcs_A_R1_Unlink" ); return; } form->bID = 0; form->B_R1 = 0; part->A_R1 = 0; }
/* * UNRELATE S_DT FROM S_UDT ACROSS R17 */ void masl2xtuml_S_UDT_R17_Unlink( masl2xtuml_S_DT * supertype, masl2xtuml_S_UDT * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "S_UDT", "masl2xtuml_S_UDT_R17_Unlink" ); return; } /* Note: S_UDT->S_DT[R17] not navigated */ supertype->R17_subtype = 0; supertype->R17_object_id = 0; }
/* * UNRELATE <left> O_ATTR FROM <right> O_ATTR ACROSS R103.'precedes' */ void masl2xtuml_O_ATTR_R103_Unlink_precedes( masl2xtuml_O_ATTR * left, masl2xtuml_O_ATTR * right ) { if ( (left == 0) || (right == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "O_ATTR", "masl2xtuml_O_ATTR_R103_Unlink_precedes" ); return; } right->PAttr_ID = 0; right->O_ATTR_R103_succeeds = 0; /* SR U4 */ left->O_ATTR_R103_precedes = 0; /* SR U5 */ }
/* * RELATE S_DT TO S_UDT ACROSS R18 */ void masl2xtuml_S_UDT_R18_Link_defines_domain_of( masl2xtuml_S_DT * part, masl2xtuml_S_UDT * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "S_UDT", "masl2xtuml_S_UDT_R18_Link_defines_domain_of" ); return; } form->CDT_DT_ID = part->DT_ID; /* Note: S_UDT->S_DT[R18] not navigated */ /* Note: S_DT->S_UDT[R18] not navigated */ }
/* * UNRELATE C FROM D ACROSS R2 */ void perf_funcs_D_R2_Unlink( perf_funcs_C * part, perf_funcs_D * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "D", "perf_funcs_D_R2_Unlink" ); return; } form->cID = 0; form->C_R2 = 0; Escher_SetRemoveElement( &part->D_R2, (Escher_ObjectSet_s *) form ); }
/* * UNRELATE S_DT FROM O_ATTR ACROSS R114 */ void masl2xtuml_O_ATTR_R114_Unlink_is_defined_by( masl2xtuml_S_DT * part, masl2xtuml_O_ATTR * form ) { if ( (part == 0) || (form == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "O_ATTR", "masl2xtuml_O_ATTR_R114_Unlink_is_defined_by" ); return; } form->DT_ID = 0; form->S_DT_R114_defines_type_of = 0; /* Note: S_DT->O_ATTR[R114] not navigated */ }
/* * RELATE <left> O_ATTR TO <right> O_ATTR ACROSS R103.'precedes' */ void masl2xtuml_O_ATTR_R103_Link_precedes( masl2xtuml_O_ATTR * left, masl2xtuml_O_ATTR * right ) { if ( (left == 0) || (right == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "O_ATTR", "masl2xtuml_O_ATTR_R103_Link_precedes" ); return; } right->PAttr_ID = left->Attr_ID; right->Obj_ID = left->Obj_ID; right->O_ATTR_R103_succeeds = left; /* SR L4 */ left->O_ATTR_R103_precedes = right; /* SR L5 */ }
/* * instance operation: clearTrackPoints */ void Tracking_TrackLog::Tracking_TrackLog_op_clearTrackPoints( Tracking_TrackLog * self, Tracking * thismodule) { Tracking_TrackPoint * v_nextPoint = 0; /* nextPoint (TrackPoint) */ Tracking_TrackPoint * v_lastPoint = 0; /* lastPoint (TrackPoint) */ /* SELECT one nextPoint RELATED BY self->TrackPoint[R1] */ XTUML_OAL_STMT_TRACE( 1, "SELECT one nextPoint RELATED BY self->TrackPoint[R1]" ); v_nextPoint = self->TrackPoint_R1; /* SELECT one lastPoint RELATED BY self->TrackPoint[R3] */ XTUML_OAL_STMT_TRACE( 1, "SELECT one lastPoint RELATED BY self->TrackPoint[R3]" ); v_lastPoint = self->TrackPoint_R3; /* IF ( not empty lastPoint ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( not empty lastPoint )" ); if ( !( 0 == v_lastPoint ) ) { /* UNRELATE self FROM lastPoint ACROSS R3 */ XTUML_OAL_STMT_TRACE( 2, "UNRELATE self FROM lastPoint ACROSS R3" ); Tracking_TrackPoint::Tracking_TrackPoint_R3_Unlink( self, v_lastPoint, thismodule ); } /* IF ( not empty nextPoint ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( not empty nextPoint )" ); if ( !( 0 == v_nextPoint ) ) { /* UNRELATE self FROM nextPoint ACROSS R1 */ XTUML_OAL_STMT_TRACE( 2, "UNRELATE self FROM nextPoint ACROSS R1" ); Tracking_TrackLog::Tracking_TrackLog_R1_Unlink( v_nextPoint, self, thismodule ); } /* WHILE ( not empty nextPoint ) */ XTUML_OAL_STMT_TRACE( 1, "WHILE ( not empty nextPoint )" ); while ( !( 0 == v_nextPoint ) ) { Tracking_TrackPoint * v_prevPoint; /* ASSIGN prevPoint = nextPoint */ XTUML_OAL_STMT_TRACE( 2, "ASSIGN prevPoint = nextPoint" ); v_prevPoint = v_nextPoint; /* SELECT one nextPoint RELATED BY nextPoint->TrackPoint[R2.follows] */ XTUML_OAL_STMT_TRACE( 2, "SELECT one nextPoint RELATED BY nextPoint->TrackPoint[R2.follows]" ); v_nextPoint = v_nextPoint->TrackPoint_R2_follows; /* IF ( not_empty nextPoint ) */ XTUML_OAL_STMT_TRACE( 2, "IF ( not_empty nextPoint )" ); if ( ( 0 != v_nextPoint ) ) { /* UNRELATE prevPoint FROM nextPoint ACROSS R2 */ XTUML_OAL_STMT_TRACE( 3, "UNRELATE prevPoint FROM nextPoint ACROSS R2" ); Tracking_TrackPoint::Tracking_TrackPoint_R2_Unlink_follows( v_prevPoint, v_nextPoint, thismodule ); } /* DELETE OBJECT INSTANCE prevPoint */ XTUML_OAL_STMT_TRACE( 2, "DELETE OBJECT INSTANCE prevPoint" ); if ( 0 == v_prevPoint ) { XTUML_EMPTY_HANDLE_TRACE( "TrackPoint", "Escher_DeleteInstance" ); } thismodule->Escher_DeleteInstance( (Escher_iHandle_t) v_prevPoint, Tracking_DOMAIN_ID, Tracking_TrackPoint_CLASS_NUMBER ); } }
/* * RELATE SUPER TO SUBB ACROSS R2 */ void sschain_SUBB_R2_Link( sschain_SUPER * supertype, sschain_SUBB * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "SUBB", "sschain_SUBB_R2_Link" ); return; } /* Optimized linkage for SUBB->SUPER[R2] */ subtype->SUPER_R2 = supertype; /* Optimized linkage for SUPER->SUBB[R2] */ supertype->R2_subtype = subtype; supertype->R2_object_id = sschain_SUBB_CLASS_NUMBER; }
/* * RELATE vitalsign TO electrocardiograph ACROSS R2 */ void monitor_electrocardiograph_R2_Link( monitor_vitalsign * supertype, monitor_electrocardiograph * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "electrocardiograph", "monitor_electrocardiograph_R2_Link" ); return; } /* Optimized linkage for electrocardiograph->vitalsign[R2] */ subtype->vitalsign_R2 = supertype; /* Optimized linkage for vitalsign->electrocardiograph[R2] */ supertype->R2_subtype = subtype; supertype->R2_object_id = monitor_electrocardiograph_CLASS_NUMBER; }
/* * RELATE vitalsign TO O2saturation ACROSS R2 */ void monitor_O2saturation_R2_Link( monitor_vitalsign * supertype, monitor_O2saturation * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "O2saturation", "monitor_O2saturation_R2_Link" ); return; } /* Optimized linkage for O2saturation->vitalsign[R2] */ subtype->vitalsign_R2 = supertype; /* Optimized linkage for vitalsign->O2saturation[R2] */ supertype->R2_subtype = subtype; supertype->R2_object_id = monitor_O2saturation_CLASS_NUMBER; }
/* * RELATE vitalsign TO pulse ACROSS R2 */ void monitor_pulse_R2_Link( monitor_vitalsign * supertype, monitor_pulse * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "pulse", "monitor_pulse_R2_Link" ); return; } /* Optimized linkage for pulse->vitalsign[R2] */ subtype->vitalsign_R2 = supertype; /* Optimized linkage for vitalsign->pulse[R2] */ supertype->R2_subtype = subtype; supertype->R2_object_id = monitor_pulse_CLASS_NUMBER; }
/* * RELATE FRUIT TO ORANGE ACROSS R3 */ void polycalc_ORANGE_R3_Link( polycalc_FRUIT * supertype, polycalc_ORANGE * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "ORANGE", "polycalc_ORANGE_R3_Link" ); return; } /* Optimized linkage for ORANGE->FRUIT[R3] */ subtype->FRUIT_R3 = supertype; /* Optimized linkage for FRUIT->ORANGE[R3] */ supertype->R3_subtype = subtype; supertype->R3_object_id = polycalc_ORANGE_CLASS_NUMBER; }
/* * RELATE vitalsign TO responsiveness ACROSS R2 */ void monitor_responsiveness_R2_Link( monitor_vitalsign * supertype, monitor_responsiveness * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "responsiveness", "monitor_responsiveness_R2_Link" ); return; } /* Optimized linkage for responsiveness->vitalsign[R2] */ subtype->vitalsign_R2 = supertype; /* Optimized linkage for vitalsign->responsiveness[R2] */ supertype->R2_subtype = subtype; supertype->R2_object_id = monitor_responsiveness_CLASS_NUMBER; }
/* * RELATE F TO E ACROSS R3 USING G */ void assoc_unformal_G_R3_Link( assoc_unformal_F * aone, assoc_unformal_E * aoth, assoc_unformal_G * assr ) { if ( (aone == 0) || (aoth == 0) || (assr == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "G", "assoc_unformal_G_R3_Link" ); return; } /* Initialize optimized relationship storage extended attributes */ assr->F_R3 = aone; assr->E_R3 = aoth; Escher_SetInsertElement( &aone->G_R3, assr ); Escher_SetInsertElement( &aoth->G_R3, assr ); }
/* * RELATE S_DT TO S_UDT ACROSS R17 */ void masl2xtuml_S_UDT_R17_Link( masl2xtuml_S_DT * supertype, masl2xtuml_S_UDT * subtype ) { if ( (supertype == 0) || (subtype == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "S_UDT", "masl2xtuml_S_UDT_R17_Link" ); return; } subtype->DT_ID = supertype->DT_ID; /* Optimized linkage for S_UDT->S_DT[R17] */ subtype->S_DT_R17 = supertype; /* Optimized linkage for S_DT->S_UDT[R17] */ supertype->R17_subtype = subtype; supertype->R17_object_id = masl2xtuml_S_UDT_CLASS_NUMBER; }
/* * RELATE <left> X TO <right> X ACROSS R12.'is buddy of' USING Y */ void assoc_unformal_Y_R12_Link_is_buddy_of( assoc_unformal_X * left, assoc_unformal_X * right, assoc_unformal_Y * assr ) { if ( (left == 0) || (right == 0) || (assr == 0) ) { XTUML_EMPTY_HANDLE_TRACE( "Y", "assoc_unformal_Y_R12_Link_is_buddy_of" ); return; } Escher_strcpy( assr->pal, left->name ); Escher_strcpy( assr->buddy, right->name ); /* Initialize optimized relationship storage extended attributes */ assr->X_R12_is_pal_of = left; /* RAL 1 */ assr->X_R12_is_buddy_of = right; /* RAL 2 */ Escher_SetInsertElement( &right->Y_R12_is_pal_of, assr ); /* RAL 8 */ Escher_SetInsertElement( &left->Y_R12_is_buddy_of, assr ); /* RAL 12 */ }
/* * class operation: update */ void monitor_pulse_op_update( const i_t p_pulse ) { monitor_pulse * pulse=0;monitor_vitalsign * vitalsign=0; /* SELECT any pulse FROM INSTANCES OF pulse */ XTUML_OAL_STMT_TRACE( 1, "SELECT any pulse FROM INSTANCES OF pulse" ); pulse = (monitor_pulse *) Escher_SetGetAny( &pG_monitor_pulse_extent.active ); /* SELECT one vitalsign RELATED BY pulse->vitalsign[R2] */ XTUML_OAL_STMT_TRACE( 1, "SELECT one vitalsign RELATED BY pulse->vitalsign[R2]" ); vitalsign = ( 0 != pulse ) ? pulse->vitalsign_R2 : 0; /* IF ( not_empty vitalsign ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( not_empty vitalsign )" ); if ( ( 0 != vitalsign ) ) { monitor_alarm * redalarm=0;monitor_alarm * yellowalarm=0; /* ASSIGN vitalsign.value = PARAM.pulse */ XTUML_OAL_STMT_TRACE( 2, "ASSIGN vitalsign.value = PARAM.pulse" ); vitalsign->value = p_pulse; /* SEND UI::display(name:vitalsign.name, value:vitalsign.value) */ XTUML_OAL_STMT_TRACE( 2, "SEND UI::display(name:vitalsign.name, value:vitalsign.value)" ); monitor_UI_display( vitalsign->name, vitalsign->value ); /* SELECT one redalarm RELATED BY vitalsign->alarm[R7] WHERE ( ( SELECTED.color == red ) ) */ XTUML_OAL_STMT_TRACE( 2, "SELECT one redalarm RELATED BY vitalsign->alarm[R7] WHERE ( ( SELECTED.color == red ) )" ); {redalarm = 0; {monitor_alarm * selected = ( 0 != vitalsign ) ? vitalsign->alarm_R7_sounds : 0; if ( ( 0 != selected ) && ( selected->color == capssys_color_red_e ) ) { redalarm = selected; }}} /* SELECT one yellowalarm RELATED BY vitalsign->alarm[R7] WHERE ( ( SELECTED.color == yellow ) ) */ XTUML_OAL_STMT_TRACE( 2, "SELECT one yellowalarm RELATED BY vitalsign->alarm[R7] WHERE ( ( SELECTED.color == yellow ) )" ); {yellowalarm = 0; {monitor_alarm * selected = ( 0 != vitalsign ) ? vitalsign->alarm_R7_sounds : 0; if ( ( 0 != selected ) && ( selected->color == capssys_color_yellow_e ) ) { yellowalarm = selected; }}} /* IF ( ( vitalsign.value < vitalsign.yellow_threshold ) ) */ XTUML_OAL_STMT_TRACE( 2, "IF ( ( vitalsign.value < vitalsign.yellow_threshold ) )" ); if ( ( vitalsign->value < vitalsign->yellow_threshold ) ) { /* IF ( empty redalarm ) */ XTUML_OAL_STMT_TRACE( 3, "IF ( empty redalarm )" ); if ( ( 0 == redalarm ) ) { /* IF ( not_empty yellowalarm ) */ XTUML_OAL_STMT_TRACE( 4, "IF ( not_empty yellowalarm )" ); if ( ( 0 != yellowalarm ) ) { /* UNRELATE yellowalarm FROM vitalsign ACROSS R7 */ XTUML_OAL_STMT_TRACE( 5, "UNRELATE yellowalarm FROM vitalsign ACROSS R7" ); monitor_alarm_R7_Unlink_sounds( vitalsign, yellowalarm ); /* DELETE OBJECT INSTANCE yellowalarm */ XTUML_OAL_STMT_TRACE( 5, "DELETE OBJECT INSTANCE yellowalarm" ); if ( 0 == yellowalarm ) { XTUML_EMPTY_HANDLE_TRACE( "alarm", "Escher_DeleteInstance" ); } Escher_DeleteInstance( (Escher_iHandle_t) yellowalarm, monitor_DOMAIN_ID, monitor_alarm_CLASS_NUMBER ); } /* CREATE OBJECT INSTANCE redalarm OF alarm */ XTUML_OAL_STMT_TRACE( 4, "CREATE OBJECT INSTANCE redalarm OF alarm" ); redalarm = (monitor_alarm *) Escher_CreateInstance( monitor_DOMAIN_ID, monitor_alarm_CLASS_NUMBER ); /* ASSIGN redalarm.color = red */ XTUML_OAL_STMT_TRACE( 4, "ASSIGN redalarm.color = red" ); redalarm->color = capssys_color_red_e; /* RELATE redalarm TO vitalsign ACROSS R7 */ XTUML_OAL_STMT_TRACE( 4, "RELATE redalarm TO vitalsign ACROSS R7" ); monitor_alarm_R7_Link_sounds( vitalsign, redalarm ); } } else if ( ( vitalsign->value < vitalsign->yellow_threshold ) ) { /* IF ( empty yellowalarm ) */ XTUML_OAL_STMT_TRACE( 3, "IF ( empty yellowalarm )" ); if ( ( 0 == yellowalarm ) ) { /* CREATE OBJECT INSTANCE yellowalarm OF alarm */ XTUML_OAL_STMT_TRACE( 4, "CREATE OBJECT INSTANCE yellowalarm OF alarm" ); yellowalarm = (monitor_alarm *) Escher_CreateInstance( monitor_DOMAIN_ID, monitor_alarm_CLASS_NUMBER ); /* ASSIGN yellowalarm.color = yellow */ XTUML_OAL_STMT_TRACE( 4, "ASSIGN yellowalarm.color = yellow" ); yellowalarm->color = capssys_color_yellow_e; /* RELATE yellowalarm TO vitalsign ACROSS R7 */ XTUML_OAL_STMT_TRACE( 4, "RELATE yellowalarm TO vitalsign ACROSS R7" ); monitor_alarm_R7_Link_sounds( vitalsign, yellowalarm ); } } else { } } }