marki_container.cpp

来自「含有uml的多个实例及实例的java源码。」· C++ 代码 · 共 506 行

CPP
506
字号
// {{{RME classifier 'Logical View::Brewers::MarkI_Container'#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )#pragma implementation "rtg/MarkI_Container.h"#endif#include <RTSystem/MarkI_x86VisualCpp60.h>#include <rtg/MarkI_Container.h>#include <rtg/Boiler.h>#include <rtg/BrewButton.h>#include <rtg/CUControl_FrontPanel.h>#include <rtg/CUControl_Sprayer.h>#include <rtg/CUControl_Warmer.h>#include <rtg/IndicatorLight.h>#include <rtg/ReliefValve.h>#include <rtg/Warmer.h>extern const RTActorClass CUFrontPanel;extern const RTActorClass CUSprayer;extern const RTActorClass CUWarmer;extern const RTActorClass MarkI_Brewer;// {{{RME tool 'OT::Cpp' property 'ImplementationPreface'// {{{USR// }}}USR// }}}RMEstatic const RTRelayDescriptor rtg_relays[] ={	{		"reliefValve"	  , &ReliefValve::Conjugate::rt_class	  , 1 // cardinality	}  , {		"indicatorLight"	  , &IndicatorLight::Conjugate::rt_class	  , 1 // cardinality	}  , {		"boiler"	  , &Boiler::Conjugate::rt_class	  , 1 // cardinality	}  , {		"brewButton"	  , &BrewButton::Conjugate::rt_class	  , 1 // cardinality	}  , {		"warmer"	  , &Warmer::Conjugate::rt_class	  , 1 // cardinality	}};static RTActor * new_MarkI_Container_Actor( RTController * _rts, RTActorRef * _ref ){	return new MarkI_Container_Actor( _rts, _ref );}const RTActorClass MarkI_Container ={	(const RTActorClass *)0  , "MarkI_Container"  , (RTVersionId)0  , 5  , rtg_relays  , new_MarkI_Container_Actor};static const char * const rtg_state_names[] ={	"TOP"};static const RTInterfaceDescriptor rtg_interfaces_plate[] ={	{		"warmer"	  , 1	}  , {		"coffeeControl"	  , 1	}};static const RTBindingDescriptor rtg_bindings_plate[] ={	{		0	  , &Warmer::Base::rt_class	}  , {		1	  , &CUControl_Warmer::Conjugate::rt_class	}};static const RTInterfaceDescriptor rtg_interfaces_frontPanel[] ={	{		"indicatorLight"	  , 1	}  , {		"brewButton"	  , 1	}  , {		"coffeeControl"	  , 1	}};static const RTBindingDescriptor rtg_bindings_frontPanel[] ={	{		0	  , &IndicatorLight::Base::rt_class	}  , {		1	  , &BrewButton::Base::rt_class	}  , {		2	  , &CUControl_FrontPanel::Conjugate::rt_class	}};static const RTInterfaceDescriptor rtg_interfaces_sprayer[] ={	{		"boiler"	  , 1	}  , {		"reliefValve"	  , 1	}  , {		"coffeeControl"	  , 1	}};static const RTBindingDescriptor rtg_bindings_sprayer[] ={	{		0	  , &Boiler::Base::rt_class	}  , {		1	  , &ReliefValve::Base::rt_class	}  , {		2	  , &CUControl_Sprayer::Conjugate::rt_class	}};static const RTInterfaceDescriptor rtg_interfaces_coffeeBrewer[] ={	{		"warmer"	  , 1	}  , {		"sprayer"	  , 1	}  , {		"frontpanel"	  , 1	}};static const RTBindingDescriptor rtg_bindings_coffeeBrewer[] ={	{		0	  , &CUControl_Warmer::Base::rt_class	}  , {		1	  , &CUControl_Sprayer::Base::rt_class	}  , {		2	  , &CUControl_FrontPanel::Base::rt_class	}};#define SUPER RTActorMarkI_Container_Actor::MarkI_Container_Actor( RTController * rtg_rts, RTActorRef * rtg_ref )	: RTActor( rtg_rts, rtg_ref ){}MarkI_Container_Actor::~MarkI_Container_Actor( void ){}int MarkI_Container_Actor::_followInV( RTBindingEnd & rtg_end, int rtg_portId, int rtg_repIndex ){	switch( rtg_portId )	{	case 0:		// reliefValve		if( rtg_repIndex < 1 )		{			// sprayer/reliefValve			return sprayer._followIn( rtg_end, 1, rtg_repIndex );		}		break;	case 1:		// indicatorLight		if( rtg_repIndex < 1 )		{			// frontPanel/indicatorLight			return frontPanel._followIn( rtg_end, 0, rtg_repIndex );		}		break;	case 2:		// boiler		if( rtg_repIndex < 1 )		{			// sprayer/boiler			return sprayer._followIn( rtg_end, 0, rtg_repIndex );		}		break;	case 3:		// brewButton		if( rtg_repIndex < 1 )		{			// frontPanel/brewButton			return frontPanel._followIn( rtg_end, 1, rtg_repIndex );		}		break;	case 4:		// warmer		if( rtg_repIndex < 1 )		{			// plate/warmer			return plate._followIn( rtg_end, 0, rtg_repIndex );		}		break;	default:		break;	}	return RTActor::_followInV( rtg_end, rtg_portId, rtg_repIndex );}int MarkI_Container_Actor::_followOutV( RTBindingEnd & rtg_end, int rtg_compId, int rtg_portId, int rtg_repIndex ){	switch( rtg_compId )	{	case 1:		// plate		switch( rtg_portId )		{		case 0:			// warmer			if( rtg_repIndex < 1 )			{				// warmer				return _followOut( rtg_end, 4, rtg_repIndex );			}			break;		case 1:			// coffeeControl			if( rtg_repIndex < 1 )			{				// coffeeBrewer/warmer				return coffeeBrewer._followIn( rtg_end, 0, rtg_repIndex );			}			break;		default:			break;		}	case 2:		// frontPanel		switch( rtg_portId )		{		case 0:			// indicatorLight			if( rtg_repIndex < 1 )			{				// indicatorLight				return _followOut( rtg_end, 1, rtg_repIndex );			}			break;		case 1:			// brewButton			if( rtg_repIndex < 1 )			{				// brewButton				return _followOut( rtg_end, 3, rtg_repIndex );			}			break;		case 2:			// coffeeControl			if( rtg_repIndex < 1 )			{				// coffeeBrewer/frontpanel				return coffeeBrewer._followIn( rtg_end, 2, rtg_repIndex );			}			break;		default:			break;		}	case 3:		// sprayer		switch( rtg_portId )		{		case 0:			// boiler			if( rtg_repIndex < 1 )			{				// boiler				return _followOut( rtg_end, 2, rtg_repIndex );			}			break;		case 1:			// reliefValve			if( rtg_repIndex < 1 )			{				// reliefValve				return _followOut( rtg_end, 0, rtg_repIndex );			}			break;		case 2:			// coffeeControl			if( rtg_repIndex < 1 )			{				// coffeeBrewer/sprayer				return coffeeBrewer._followIn( rtg_end, 1, rtg_repIndex );			}			break;		default:			break;		}	case 4:		// coffeeBrewer		switch( rtg_portId )		{		case 0:			// warmer			if( rtg_repIndex < 1 )			{				// plate/coffeeControl				return plate._followIn( rtg_end, 1, rtg_repIndex );			}			break;		case 1:			// sprayer			if( rtg_repIndex < 1 )			{				// sprayer/coffeeControl				return sprayer._followIn( rtg_end, 2, rtg_repIndex );			}			break;		case 2:			// frontpanel			if( rtg_repIndex < 1 )			{				// frontPanel/coffeeControl				return frontPanel._followIn( rtg_end, 2, rtg_repIndex );			}			break;		default:			break;		}	default:		break;	}	return RTActor::_followOutV( rtg_end, rtg_compId, rtg_portId, rtg_repIndex );}void MarkI_Container_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 * MarkI_Container_Actor::getActorData( void ) const{	return &MarkI_Container_Actor::rtg_class;}const RTActor_class MarkI_Container_Actor::rtg_class ={	(const RTActor_class *)0  , rtg_state_names  , 1  , MarkI_Container_Actor::rtg_parent_state  , &MarkI_Container  , 4  , MarkI_Container_Actor::rtg_capsule_roles  , 0  , (const RTPortDescriptor *)0  , 0  , (const RTLocalBindingDescriptor *)0  , 0  , (const RTFieldDescriptor *)0};const RTStateId MarkI_Container_Actor::rtg_parent_state[] ={	0};const RTComponentDescriptor MarkI_Container_Actor::rtg_capsule_roles[] ={	{		"plate"	  , &CUWarmer	  , RTOffsetOf( MarkI_Container_Actor, plate )	  , 1	  , RTComponentDescriptor::Fixed	  , 1	  , 1 // cardinality	  , 2	  , rtg_interfaces_plate	  , 2	  , rtg_bindings_plate	}  , {		"frontPanel"	  , &CUFrontPanel	  , RTOffsetOf( MarkI_Container_Actor, frontPanel )	  , 2	  , RTComponentDescriptor::Fixed	  , 1	  , 1 // cardinality	  , 3	  , rtg_interfaces_frontPanel	  , 3	  , rtg_bindings_frontPanel	}  , {		"sprayer"	  , &CUSprayer	  , RTOffsetOf( MarkI_Container_Actor, sprayer )	  , 3	  , RTComponentDescriptor::Fixed	  , 1	  , 1 // cardinality	  , 3	  , rtg_interfaces_sprayer	  , 3	  , rtg_bindings_sprayer	}  , {		"coffeeBrewer"	  , &MarkI_Brewer	  , RTOffsetOf( MarkI_Container_Actor, coffeeBrewer )	  , 4	  , RTComponentDescriptor::Fixed	  , 1	  , 1 // cardinality	  , 3	  , rtg_interfaces_coffeeBrewer	  , 3	  , rtg_bindings_coffeeBrewer	}};#undef SUPER// {{{RME tool 'OT::Cpp' property 'ImplementationEnding'// {{{USR// }}}USR// }}}RME// }}}RME

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?