示例#1
0
		void
		evt_default_three( const so_5::rt::event_data_t< msg_three > & )
		{
			m_sequence += "d3:";

			so_change_state( st_1 );

			m_mbox->deliver_signal< msg_one >();
			m_mbox->deliver_signal< msg_two >();
		}
示例#2
0
		void
		evt_msg_1( const so_5::rt::event_data_t< msg_test > & evt )
		{
			m_controller.msg_receive_1( evt.get() );

			m_stored_message = evt.make_reference();
			so_change_state( st_stored );

			m_mbox->deliver_signal< msg_do_resend >();
		}
示例#3
0
		void
		evt_st_1_three( const so_5::rt::event_data_t< msg_three > & )
		{
			m_sequence += "1_d3:";

			so_drop_subscription_for_all_states( m_mbox,
					&a_test_t::evt_default_one );

			so_change_state( st_2 );

			m_mbox->deliver_signal< msg_one >();
			m_mbox->deliver_signal< msg_two >();
			m_mbox->deliver_signal< msg_three >();
		}
示例#4
0
		void
		evt_next_normal_convert(
			const so_5::rt::event_data_t< msg_next_convert > & )
			{
				if( m_normal_convert_actions_current <
						m_normal_convert_actions.size() )
					{
						m_normal_convert_actions[ m_normal_convert_actions_current ]();
						++m_normal_convert_actions_current;
					}
				else
					{
						so_change_state( st_deadlocks );
					}

				m_self_mbox->deliver_signal< msg_next_convert >();
			}
void
agent_t::so_switch_to_awaiting_deregistration_state()
{
	so_change_state( awaiting_deregistration_state );
}