removecoffeepot_test.cpp

来自「含有uml的多个实例及实例的java源码。」· C++ 代码 · 共 957 行 · 第 1/2 页

CPP
957
字号
// {{{RME classifier 'Logical View::TestHarnesses::MarkI_Tests::Scenarios_MarkI::RemoveCoffeePot_Test'#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )#pragma implementation "rtg/RemoveCoffeePot_Test.h"#endif#include <RTSystem/AutoTestMarkI_x86VisualCpp60.h>#include <rtg/RemoveCoffeePot_Test.h>#include <rtg/Boiler.h>#include <rtg/BrewButton.h>#include <rtg/IndicatorLight.h>#include <rtg/ReliefValve.h>#include <rtg/Warmer.h>// {{{RME tool 'OT::Cpp' property 'ImplementationPreface'// {{{USR// }}}USR// }}}RMEstatic const RTRelayDescriptor rtg_relays[] ={	{		"reliefValve"	  , &ReliefValve::Base::rt_class	  , 1 // cardinality	}  , {		"boiler"	  , &Boiler::Base::rt_class	  , 1 // cardinality	}  , {		"brewButton"	  , &BrewButton::Base::rt_class	  , 1 // cardinality	}  , {		"warmer"	  , &Warmer::Base::rt_class	  , 1 // cardinality	}  , {		"indicatorLight"	  , &IndicatorLight::Base::rt_class	  , 1 // cardinality	}  , {		"testResults"	  , &TestResults::Base::rt_class	  , 1 // cardinality	}};static RTActor * new_RemoveCoffeePot_Test_Actor( RTController * _rts, RTActorRef * _ref ){	return new RemoveCoffeePot_Test_Actor( _rts, _ref );}const RTActorClass RemoveCoffeePot_Test ={	&MarkI_TestContainer  , "RemoveCoffeePot_Test"  , (RTVersionId)0  , 6  , rtg_relays  , new_RemoveCoffeePot_Test_Actor};static const char * const rtg_state_names[] ={	"TOP"  , "Waiting"  , "Light"  , "Check"  , "BoilerValveOn"  , "WarmerGoesOn"  , "RemovePot"  , "Brewing_stopped"  , "Warmer"  , "S1"  , "TurnOffBoiler"  , "TurnoffWarmer"  , "S2"};#define SUPER MarkI_TestContainer_ActorRemoveCoffeePot_Test_Actor::RemoveCoffeePot_Test_Actor( RTController * rtg_rts, RTActorRef * rtg_ref )	: MarkI_TestContainer_Actor( rtg_rts, rtg_ref ){}RemoveCoffeePot_Test_Actor::~RemoveCoffeePot_Test_Actor( void ){}int RemoveCoffeePot_Test_Actor::_followInV( RTBindingEnd & rtg_end, int rtg_portId, int rtg_repIndex ){	switch( rtg_portId )	{	case 0:		// reliefValve		if( rtg_repIndex < 1 )		{			// t_reliefValve			rtg_end.port = &t_reliefValve;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 1:		// boiler		if( rtg_repIndex < 1 )		{			// t_boiler			rtg_end.port = &t_boiler;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 2:		// brewButton		if( rtg_repIndex < 1 )		{			// t_brewButton			rtg_end.port = &t_brewButton;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 3:		// warmer		if( rtg_repIndex < 1 )		{			// t_warmer			rtg_end.port = &t_warmer;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 4:		// indicatorLight		if( rtg_repIndex < 1 )		{			// t_indicatorLight			rtg_end.port = &t_indicatorLight;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 5:		// testResults		if( rtg_repIndex < 1 )		{			rtg_end.port = &testResults;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	default:		break;	}	return MarkI_TestContainer_Actor::_followInV( rtg_end, rtg_portId, rtg_repIndex );}// {{{RME transition ':TOP:Waiting:Junction2:prepare'#define SUPERMETHOD MarkI_TestContainer_Actor::transition3_prepare#define CALLSUPER MarkI_TestContainer_Actor::transition3_prepare( rtdata, rtport )INLINE_METHODS void RemoveCoffeePot_Test_Actor::transition3_prepare( const void * rtdata, TestResults::Base * rtport ){	// {{{USR	timer.informIn( RTTimespec( 2,0 ) );	// put empty pot	// fill boiler with water	// press brew button	t_warmer.potEmpty().send();	t_boiler.boilerNotEmpty().send();	t_brewButton.brewButtonPushed().send();	// }}}USR}#undef SUPERMETHOD#undef CALLSUPER// }}}RME// {{{RME transition ':TOP:BoilerValveOn:Junction2:waterStarttofill'#define SUPERMETHOD MarkI_TestContainer_Actor::transition6_waterStarttofill#define CALLSUPER MarkI_TestContainer_Actor::transition6_waterStarttofill( rtdata, rtport )INLINE_METHODS void RemoveCoffeePot_Test_Actor::transition6_waterStarttofill( const void * rtdata, RTProtocol * rtport ){	// {{{USR	t_warmer.potNotEmpty().send();	// }}}USR}#undef SUPERMETHOD#undef CALLSUPER// }}}RME// {{{RME transition ':TOP:WarmerGoesOn:Junction2:warmer_on'#define SUPERMETHOD MarkI_TestContainer_Actor::transition7_warmer_on#define CALLSUPER MarkI_TestContainer_Actor::transition7_warmer_on( rtdata, rtport )INLINE_METHODS void RemoveCoffeePot_Test_Actor::transition7_warmer_on( const void * rtdata, Warmer::Base * rtport ){	// {{{USR	t_warmer.warmerEmpty().send();	// }}}USR}#undef SUPERMETHOD#undef CALLSUPER// }}}RME// {{{RME transition ':TOP:TurnOffBoiler:Junction2:t1'#define SUPERMETHOD MarkI_TestContainer_Actor::transition8_t1#define CALLSUPER MarkI_TestContainer_Actor::transition8_t1( rtdata, rtport )INLINE_METHODS void RemoveCoffeePot_Test_Actor::transition8_t1( const void * rtdata, RTProtocol * rtport ){	// {{{USR	t_warmer.potNotEmpty().send();	// }}}USR}#undef SUPERMETHOD#undef CALLSUPER// }}}RME// {{{RME transition ':TOP:S1:Junction2:t1'#define SUPERMETHOD MarkI_TestContainer_Actor::transition13_t1#define CALLSUPER MarkI_TestContainer_Actor::transition13_t1( rtdata, rtport )INLINE_METHODS void RemoveCoffeePot_Test_Actor::transition13_t1( const void * rtdata, RTProtocol * rtport ){	// {{{USR	testResults.success().send();	// }}}USR}#undef SUPERMETHOD#undef CALLSUPER// }}}RMEINLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain2_Initial( void ){	// transition ':TOP:Initial:Initial'	rtgChainBegin( 1, "Initial" );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain1_timeout( void ){	// classifier 'Logical View::TestHarnesses::MarkI_Tests::MarkI_TestContainer' transition ':TOP:Junction1:timeout'	rtgChainBegin( 1, "timeout" );	exitToChainState( 1, rtg_parent_state );	rtgTransitionBegin();	transition1_timeout( msg->data, (Timing::Base *)msg->sap() );	rtgTransitionEnd();	processHistory();}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain3_prepare( void ){	// transition ':TOP:Waiting:Junction2:prepare'	rtgChainBegin( 2, "prepare" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition3_prepare( msg->data, (TestResults::Base *)msg->sap() );	rtgTransitionEnd();	enterState( 3 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain4_indicatorOff( void ){	// transition ':TOP:Light:Junction2:indicatorOff'	rtgChainBegin( 3, "indicatorOff" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 4 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain5_heatBoiler( void ){	// transition ':TOP:Check:Junction2:heatBoiler'	rtgChainBegin( 4, "heatBoiler" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 5 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain6_waterStarttofill( void ){	// transition ':TOP:BoilerValveOn:Junction2:waterStarttofill'	rtgChainBegin( 5, "waterStarttofill" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition6_waterStarttofill( msg->data, msg->sap() );	rtgTransitionEnd();	enterState( 6 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain7_warmer_on( void ){	// transition ':TOP:WarmerGoesOn:Junction2:warmer_on'	rtgChainBegin( 6, "warmer_on" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition7_warmer_on( msg->data, (Warmer::Base *)msg->sap() );	rtgTransitionEnd();	enterState( 7 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain11_t1( void ){	// transition ':TOP:RemovePot:Junction2:t1'	rtgChainBegin( 7, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 12 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain9_t1( void ){	// transition ':TOP:Brewing_stopped:Junction2:t1'	rtgChainBegin( 8, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 9 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain12_t1( void ){	// transition ':TOP:Warmer:Junction2:t1'	rtgChainBegin( 9, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 10 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain13_t1( void ){	// transition ':TOP:S1:Junction2:t1'	rtgChainBegin( 10, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition13_t1( msg->data, msg->sap() );	rtgTransitionEnd();	enterState( 13 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain8_t1( void ){	// transition ':TOP:TurnOffBoiler:Junction2:t1'	rtgChainBegin( 11, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition8_t1( msg->data, msg->sap() );	rtgTransitionEnd();	enterState( 8 );}INLINE_CHAINS void RemoveCoffeePot_Test_Actor::chain10_t1( void ){	// transition ':TOP:TurnoffWarmer:Junction2:t1'	rtgChainBegin( 12, "t1" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 11 );}void RemoveCoffeePot_Test_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:					chain2_Initial();					return;				default:					break;				}				break;			case 12:				// {{{RME classifier 'Logical View::TestHarnesses::MarkI_Tests::MarkI_TestContainer' port 'timer'				switch( signalIndex )				{				case Timing::Base::rti_timeout:					chain1_timeout();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			unexpectedMessage();			return;			// }}}RME		case 2:			// {{{RME state ':TOP:Waiting'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 6:				// {{{RME classifier 'Logical View::TestHarnesses::MarkI_Tests::MarkI_TestContainer' port 'testResults'				switch( signalIndex )				{				case TestResults::Base::rti_start:					chain3_prepare();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		case 3:			// {{{RME state ':TOP:Light'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 8:				// {{{RME classifier 'Logical View::TestHarnesses::MarkI_Tests::MarkI_TestContainer' port 't_indicatorLight'				switch( signalIndex )				{				case IndicatorLight::Base::rti_indicatorOff:					chain4_indicatorOff();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		case 4:			// {{{RME state ':TOP:Check'			switch( portIndex )

⌨️ 快捷键说明

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