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 + -
显示快捷键?