coffeemachine_marki.cpp
来自「含有uml的多个实例及实例的java源码。」· C++ 代码 · 共 350 行
CPP
350 行
// {{{RME classifier 'Logical View::Brewers::CoffeeMachine_MarkI'#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )#pragma implementation "rtg/CoffeeMachine_MarkI.h"#endif#include <RTSystem/MarkI_x86VisualCpp60.h>#include <rtg/CoffeeMachine_MarkI.h>#include <rtg/Boiler.h>#include <rtg/BrewButton.h>#include <rtg/IndicatorLight.h>#include <rtg/ReliefValve.h>#include <rtg/Warmer.h>extern const RTActorClass MarkI_Container;extern const RTActorClass MarkI_HWDevices;// {{{RME tool 'OT::Cpp' property 'ImplementationPreface'// {{{USR// }}}USR// }}}RMEstatic RTActor * new_CoffeeMachine_MarkI_Actor( RTController * _rts, RTActorRef * _ref ){ return new CoffeeMachine_MarkI_Actor( _rts, _ref );}const RTActorClass CoffeeMachine_MarkI ={ (const RTActorClass *)0 , "CoffeeMachine_MarkI" , (RTVersionId)0 , 0 , (const RTRelayDescriptor *)0 , new_CoffeeMachine_MarkI_Actor};static const char * const rtg_state_names[] ={ "TOP"};static const RTInterfaceDescriptor rtg_interfaces_drivers[] ={ { "reliefValve" , 1 } , { "boiler" , 1 } , { "brewButton" , 1 } , { "warmer" , 1 } , { "indicatorLight" , 1 }};static const RTBindingDescriptor rtg_bindings_drivers[] ={ { 0 , &ReliefValve::Conjugate::rt_class } , { 1 , &Boiler::Conjugate::rt_class } , { 2 , &BrewButton::Conjugate::rt_class } , { 3 , &Warmer::Conjugate::rt_class } , { 4 , &IndicatorLight::Conjugate::rt_class }};static const RTInterfaceDescriptor rtg_interfaces_cUContainer[] ={ { "reliefValve" , 1 } , { "indicatorLight" , 1 } , { "boiler" , 1 } , { "brewButton" , 1 } , { "warmer" , 1 }};static const RTBindingDescriptor rtg_bindings_cUContainer[] ={ { 0 , &ReliefValve::Base::rt_class } , { 1 , &IndicatorLight::Base::rt_class } , { 2 , &Boiler::Base::rt_class } , { 3 , &BrewButton::Base::rt_class } , { 4 , &Warmer::Base::rt_class }};#define SUPER RTActorCoffeeMachine_MarkI_Actor::CoffeeMachine_MarkI_Actor( RTController * rtg_rts, RTActorRef * rtg_ref ) : RTActor( rtg_rts, rtg_ref ){}CoffeeMachine_MarkI_Actor::~CoffeeMachine_MarkI_Actor( void ){}int CoffeeMachine_MarkI_Actor::_followOutV( RTBindingEnd & rtg_end, int rtg_compId, int rtg_portId, int rtg_repIndex ){ switch( rtg_compId ) { case 1: // drivers switch( rtg_portId ) { case 0: // reliefValve if( rtg_repIndex < 1 ) { // cUContainer/reliefValve return cUContainer._followIn( rtg_end, 0, rtg_repIndex ); } break; case 1: // boiler if( rtg_repIndex < 1 ) { // cUContainer/boiler return cUContainer._followIn( rtg_end, 2, rtg_repIndex ); } break; case 2: // brewButton if( rtg_repIndex < 1 ) { // cUContainer/brewButton return cUContainer._followIn( rtg_end, 3, rtg_repIndex ); } break; case 3: // warmer if( rtg_repIndex < 1 ) { // cUContainer/warmer return cUContainer._followIn( rtg_end, 4, rtg_repIndex ); } break; case 4: // indicatorLight if( rtg_repIndex < 1 ) { // cUContainer/indicatorLight return cUContainer._followIn( rtg_end, 1, rtg_repIndex ); } break; default: break; } case 2: // cUContainer switch( rtg_portId ) { case 0: // reliefValve if( rtg_repIndex < 1 ) { // drivers/reliefValve return drivers._followIn( rtg_end, 0, rtg_repIndex ); } break; case 1: // indicatorLight if( rtg_repIndex < 1 ) { // drivers/indicatorLight return drivers._followIn( rtg_end, 4, rtg_repIndex ); } break; case 2: // boiler if( rtg_repIndex < 1 ) { // drivers/boiler return drivers._followIn( rtg_end, 1, rtg_repIndex ); } break; case 3: // brewButton if( rtg_repIndex < 1 ) { // drivers/brewButton return drivers._followIn( rtg_end, 2, rtg_repIndex ); } break; case 4: // warmer if( rtg_repIndex < 1 ) { // drivers/warmer return drivers._followIn( rtg_end, 3, rtg_repIndex ); } break; default: break; } default: break; } return RTActor::_followOutV( rtg_end, rtg_compId, rtg_portId, rtg_repIndex );}void CoffeeMachine_MarkI_Actor::rtsBehavior( int signalIndex, int portIndex ){ for( int stateIndex = getCurrentState(); ; ) switch( stateIndex ) { case 1: // {{{RME state ':TOP' switch( portIndex ) { case 0: switch( signalIndex ) { case 1: return; default: break; } break; default: break; } unexpectedMessage(); return; // }}}RME default: unexpectedState(); return; }}const RTActor_class * CoffeeMachine_MarkI_Actor::getActorData( void ) const{ return &CoffeeMachine_MarkI_Actor::rtg_class;}const RTActor_class CoffeeMachine_MarkI_Actor::rtg_class ={ (const RTActor_class *)0 , rtg_state_names , 1 , CoffeeMachine_MarkI_Actor::rtg_parent_state , &CoffeeMachine_MarkI , 2 , CoffeeMachine_MarkI_Actor::rtg_capsule_roles , 0 , (const RTPortDescriptor *)0 , 0 , (const RTLocalBindingDescriptor *)0 , 0 , (const RTFieldDescriptor *)0};const RTStateId CoffeeMachine_MarkI_Actor::rtg_parent_state[] ={ 0};const RTComponentDescriptor CoffeeMachine_MarkI_Actor::rtg_capsule_roles[] ={ { "drivers" , &MarkI_HWDevices , RTOffsetOf( CoffeeMachine_MarkI_Actor, drivers ) , 1 , RTComponentDescriptor::Fixed , 1 , 1 // cardinality , 5 , rtg_interfaces_drivers , 5 , rtg_bindings_drivers } , { "cUContainer" , &MarkI_Container , RTOffsetOf( CoffeeMachine_MarkI_Actor, cUContainer ) , 2 , RTComponentDescriptor::Fixed , 1 , 1 // cardinality , 5 , rtg_interfaces_cUContainer , 5 , rtg_bindings_cUContainer }};#undef SUPER// {{{RME tool 'OT::Cpp' property 'ImplementationEnding'// {{{USR// }}}USR// }}}RME// }}}RME
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?