⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 marki_brewer.cpp

📁 含有uml的多个实例及实例的java源码。
💻 CPP
字号:
// {{{RME classifier 'Logical View::Brewers::MarkI_Brewer'#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )#pragma implementation "rtg/MarkI_Brewer.h"#endif#include <RTSystem/AutoTestMarkI_x86VisualCpp60.h>#include <rtg/MarkI_Brewer.h>// {{{RME tool 'OT::Cpp' property 'ImplementationPreface'// {{{USR// }}}USR// }}}RMEstatic const RTRelayDescriptor rtg_relays[] ={	{		"warmer"	  , &CUControl_Warmer::Conjugate::rt_class	  , 1 // cardinality	}  , {		"sprayer"	  , &CUControl_Sprayer::Conjugate::rt_class	  , 1 // cardinality	}  , {		"frontpanel"	  , &CUControl_FrontPanel::Conjugate::rt_class	  , 1 // cardinality	}};static RTActor * new_MarkI_Brewer_Actor( RTController * _rts, RTActorRef * _ref ){	return new MarkI_Brewer_Actor( _rts, _ref );}const RTActorClass MarkI_Brewer ={	(const RTActorClass *)0  , "MarkI_Brewer"  , (RTVersionId)0  , 3  , rtg_relays  , new_MarkI_Brewer_Actor};static const char * const rtg_state_names[] ={	"TOP"  , "Forwarder"};#define SUPER RTActorMarkI_Brewer_Actor::MarkI_Brewer_Actor( RTController * rtg_rts, RTActorRef * rtg_ref )	: RTActor( rtg_rts, rtg_ref ){}MarkI_Brewer_Actor::~MarkI_Brewer_Actor( void ){}// {{{RME operation 'AreDevicesReady()'int MarkI_Brewer_Actor::AreDevicesReady( void ){	// {{{USR	RTMessage 	rsprayer, rwarmer;	int			retval = 0;	sprayer.CheckReady().invoke( &rsprayer );	warmer.CheckReady().invoke( &rwarmer );	if( rsprayer.isValid() && rwarmer.isValid() )	{	  if ((rsprayer.getSignal() == sprayer.Ready()._signal)	   && (rwarmer.getSignal()  == warmer.Ready()._signal ))	    retval = 1;	}	return retval;	// }}}USR}// }}}RMEint MarkI_Brewer_Actor::_followInV( RTBindingEnd & rtg_end, int rtg_portId, int rtg_repIndex ){	switch( rtg_portId )	{	case 0:		// warmer		if( rtg_repIndex < 1 )		{			rtg_end.port = &warmer;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 1:		// sprayer		if( rtg_repIndex < 1 )		{			rtg_end.port = &sprayer;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 2:		// frontpanel		if( rtg_repIndex < 1 )		{			rtg_end.port = &frontpanel;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	default:		break;	}	return RTActor::_followInV( rtg_end, rtg_portId, rtg_repIndex );}// {{{RME transition ':TOP:Forwarder:Junction6:Pot'INLINE_METHODS void MarkI_Brewer_Actor::transition1_Pot( const void * rtdata, CUControl_Warmer::Conjugate * rtport ){	// {{{USR	sprayer.Pot().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:Forwarder:Junction8:NoPot'INLINE_METHODS void MarkI_Brewer_Actor::transition2_NoPot( const void * rtdata, CUControl_Warmer::Conjugate * rtport ){	// {{{USR	// When the pot has been removed, notify the sprayer	// he may have to stop brewing, or pause.	sprayer.NoPot().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:Forwarder:Junction10:BrewComplete'INLINE_METHODS void MarkI_Brewer_Actor::transition3_BrewComplete( const void * rtdata, CUControl_Sprayer::Conjugate * rtport ){	// {{{USR	// when the spayer is completed the brew, notify the user	frontpanel.BrewingComplete().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:Forwarder:Junction1:BrewRequest'INLINE_METHODS void MarkI_Brewer_Actor::transition5_BrewRequest( const void * rtdata, CUControl_FrontPanel::Conjugate * rtport ){	// {{{USR	if( AreDevicesReady() )	{	  frontpanel.Brew().send();	  sprayer.Brew().send();	}	else	  frontpanel.BrewDenied().send();	// }}}USR}// }}}RMEINLINE_CHAINS void MarkI_Brewer_Actor::chain4_Initial( void ){	// transition ':TOP:Initial:Initial'	rtgChainBegin( 1, "Initial" );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void MarkI_Brewer_Actor::chain1_Pot( void ){	// transition ':TOP:Forwarder:Junction6:Pot'	rtgChainBegin( 2, "Pot" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition1_Pot( msg->data, (CUControl_Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void MarkI_Brewer_Actor::chain2_NoPot( void ){	// transition ':TOP:Forwarder:Junction8:NoPot'	rtgChainBegin( 2, "NoPot" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition2_NoPot( msg->data, (CUControl_Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void MarkI_Brewer_Actor::chain3_BrewComplete( void ){	// transition ':TOP:Forwarder:Junction10:BrewComplete'	rtgChainBegin( 2, "BrewComplete" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition3_BrewComplete( msg->data, (CUControl_Sprayer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void MarkI_Brewer_Actor::chain5_BrewRequest( void ){	// transition ':TOP:Forwarder:Junction1:BrewRequest'	rtgChainBegin( 2, "BrewRequest" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition5_BrewRequest( msg->data, (CUControl_FrontPanel::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}void MarkI_Brewer_Actor::rtsBehavior( int signalIndex, int portIndex ){	for( int stateIndex = getCurrentState(); ; stateIndex = rtg_parent_state[ stateIndex - 1 ] )		switch( stateIndex )		{		case 1:			// {{{RME state ':TOP'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					chain4_Initial();					return;				default:					break;				}				break;			default:				break;			}			unexpectedMessage();			return;			// }}}RME		case 2:			// {{{RME state ':TOP:Forwarder'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 1:				// {{{RME port 'warmer'				switch( signalIndex )				{				case CUControl_Warmer::Conjugate::rti_Pot:					chain1_Pot();					return;				case CUControl_Warmer::Conjugate::rti_NoPot:					chain2_NoPot();					return;				default:					break;				}				break;				// }}}RME			case 2:				// {{{RME port 'sprayer'				switch( signalIndex )				{				case CUControl_Sprayer::Conjugate::rti_BrewingComplete:					chain3_BrewComplete();					return;				default:					break;				}				break;				// }}}RME			case 3:				// {{{RME port 'frontpanel'				switch( signalIndex )				{				case CUControl_FrontPanel::Conjugate::rti_BrewRequested:					chain5_BrewRequest();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		default:			unexpectedState();			return;		}}const RTActor_class * MarkI_Brewer_Actor::getActorData( void ) const{	return &MarkI_Brewer_Actor::rtg_class;}const RTActor_class MarkI_Brewer_Actor::rtg_class ={	(const RTActor_class *)0  , rtg_state_names  , 2  , MarkI_Brewer_Actor::rtg_parent_state  , &MarkI_Brewer  , 0  , (const RTComponentDescriptor *)0  , 4  , MarkI_Brewer_Actor::rtg_ports  , 0  , (const RTLocalBindingDescriptor *)0  , 1  , MarkI_Brewer_Actor::rtg_MarkI_Brewer_fields};const RTStateId MarkI_Brewer_Actor::rtg_parent_state[] ={	0  , 1};const RTPortDescriptor MarkI_Brewer_Actor::rtg_ports[] ={	{		"warmer"	  , (const char *)0	  , &CUControl_Warmer::Conjugate::rt_class	  , RTOffsetOf( MarkI_Brewer_Actor, MarkI_Brewer_Actor::warmer )	  , 1 // cardinality	  , 1	  , RTPortDescriptor::KindWired + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityPublic	}  , {		"sprayer"	  , (const char *)0	  , &CUControl_Sprayer::Conjugate::rt_class	  , RTOffsetOf( MarkI_Brewer_Actor, MarkI_Brewer_Actor::sprayer )	  , 1 // cardinality	  , 2	  , RTPortDescriptor::KindWired + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityPublic	}  , {		"frontpanel"	  , (const char *)0	  , &CUControl_FrontPanel::Conjugate::rt_class	  , RTOffsetOf( MarkI_Brewer_Actor, MarkI_Brewer_Actor::frontpanel )	  , 1 // cardinality	  , 3	  , RTPortDescriptor::KindWired + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityPublic	}  , {		"timer"	  , (const char *)0	  , &Timing::Base::rt_class	  , RTOffsetOf( MarkI_Brewer_Actor, MarkI_Brewer_Actor::timer )	  , 1 // cardinality	  , 4	  , RTPortDescriptor::KindSpecial + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityProtected	}};const RTFieldDescriptor MarkI_Brewer_Actor::rtg_MarkI_Brewer_fields[] ={	// {{{RME classAttribute 'tid'	{		"tid"	  , RTOffsetOf( MarkI_Brewer_Actor, tid )		// {{{RME tool 'OT::CppTargetRTS' property 'TypeDescriptor'	  , &RTType_RTTimerId		// }}}RME		// {{{RME tool 'OT::CppTargetRTS' property 'GenerateTypeModifier'	  , (const RTTypeModifier *)0		// }}}RME	}	// }}}RME};#undef SUPER// {{{RME tool 'OT::Cpp' property 'ImplementationEnding'// {{{USR// }}}USR// }}}RME// }}}RME

⌨️ 快捷键说明

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