virtual void so_define_agent() { so_subscribe( m_self_mbox ) .event( []( const msg_convert & msg ) mutable -> std::string { std::ostringstream s; s << msg.m_value; return s.str(); } ); so_subscribe( m_self_mbox ) .event( []( const msg_print & msg ) mutable { std::ostringstream s; s << msg.m_value; } ); so_subscribe( m_self_mbox ) .event< msg_get_status >( []() mutable -> std::string { return "ready"; } ); }
void test_agent_t::so_define_agent() { so_subscribe( m_test_mbox ) .event( &test_agent_t::evt_test ); so_subscribe( m_test_mbox ) .event( &test_agent_t::evt_stop ); }
virtual void so_define_agent() { so_subscribe( m_mbox ).event< msg_parent_started >( &a_driver_t::evt_parent_started ); so_subscribe( m_mbox ).event< msg_shutdown >( &a_driver_t::evt_shutdown ); }
void so_define_agent() { so_subscribe( so_direct_mbox() ) .event( &a_test_t::evt_one ); so_subscribe( so_direct_mbox() ) .event( &a_test_t::evt_three ); so_subscribe( so_direct_mbox() ) .event( &a_test_t::evt_four ); }
virtual void so_define_agent() override { so_set_delivery_filter( m_data_mbox, []( const dummy_msg & msg ) { return 0 == msg.m_i; } ); so_subscribe( m_data_mbox ).event< finish >( &a_test_t::evt_finish ); so_subscribe( m_data_mbox ).event( &a_test_t::evt_dummy_msg ); }
void so_define_agent() { so_subscribe( m_mbox_1 ) .event( &a_test_t::evt_msg_1 ); so_subscribe( m_mbox_2 ) .event( &a_test_t::evt_msg_2 ); so_subscribe( m_mbox_2 ) .event( &a_test_t::evt_stop ); }
virtual void so_define_agent() { so_subscribe( m_self_mbox ).event( &a_client_t::evt_next_normal_convert ); so_subscribe( m_self_mbox ).in( st_deadlocks ) .event( &a_client_t::evt_next_back_call_convert ); so_subscribe( m_self_mbox ).in( st_deadlocks ) .event( &a_client_t::svc_back_call ); }
void so_define_agent() { so_subscribe( m_mbox ) .event( &a_test_t::evt_delayed_message ); so_subscribe( m_mbox ) .event( &a_test_t::evt_do_resend ); so_subscribe( m_mbox ) .event( &a_test_t::evt_stop ); }
void so_define_agent() { so_subscribe( m_mbox ) .event( &a_test_t::evt_one ); so_subscribe( m_mbox ) .event( &a_test_t::evt_two ); so_subscribe( m_mbox ) .event( &a_test_t::evt_three ); so_subscribe( m_mbox ) .event( &a_test_t::evt_four ); }
virtual void so_define_agent() { so_subscribe( m_self_mbox ) .event( &a_convert_service_t::svc_default ); so_subscribe( m_self_mbox ) .event( &a_convert_service_t::svc_back_call_default ); so_subscribe( m_self_mbox ) .event( &a_convert_service_t::svc_convert ); so_subscribe( m_self_mbox ) .event( &a_convert_service_t::svc_back_call_convert ); }
void so_define_agent() { so_subscribe( m_mbox ) .event( &a_test_t::evt_msg_1 ); so_subscribe( m_mbox ).in( st_stored ) .event( &a_test_t::evt_do_resend ); so_subscribe( m_mbox ).in( st_stored ) .event( &a_test_t::evt_msg_2 ); so_subscribe( m_mbox ).in( st_stored ) .event( &a_test_t::evt_stop ); }
virtual void so_define_agent() { so_subscribe( m_self_mbox ) .event< msg_shutdown >( [this]() { so_environment().stop(); } ); }
virtual void so_define_agent() { so_subscribe( m_mbox ).event< msg_check_signal >( &a_child_t::evt_check_signal ); try { m_parent_mbox->run_one() .wait_for( std::chrono::milliseconds( 100 ) ) .sync_get< msg_initiate_dereg >(); throw std::runtime_error( "timeout expected" ); } catch( const so_5::exception_t & x ) { if( so_5::rc_svc_result_not_received_yet != x.error_code() ) { std::cerr << "timeout expiration expected, but " "the actual error_code: " << x.error_code() << std::endl; std::abort(); } } m_mbox->deliver_signal< msg_check_signal >(); }
void so_define_agent() { so_subscribe( m_self_mbox ).event< msg_test_signal >( [] { throw std::runtime_error( "Exception from a_test_t!" ); } ); }
virtual void so_define_agent() { so_subscribe( so_direct_mbox() ) .in( so_default_state() ) .event( &a_ordinary_t::some_handler ); so_direct_mbox()->deliver_signal< some_message >(); }
void evt_three( const so_5::event_data_t< msg_three > & ) { m_sequence += "e3:"; so_drop_subscription( so_direct_mbox(), &a_test_t::evt_one ); so_subscribe( so_direct_mbox() ).event( &a_test_t::evt_two ); }
virtual void so_define_agent() override { so_set_delivery_filter( m_svc_mbox, []( const data & msg ) { return 1 == std::get<0>( msg ); } ); so_subscribe( m_svc_mbox ).event( []( const data & msg ) { return 1 + std::get<0>( msg ); } ); }
shutdowner( context_t ctx, unsigned int producers_count ) : so_5::agent_t{ ctx } , m_producers_left{ producers_count } { so_subscribe( so_environment().create_mbox( "shutdowner" ) ) .event< another_producer_finished >( [this] { --m_producers_left; if( !m_producers_left ) so_environment().stop(); } ); }
virtual void so_define_agent() { so_5::mbox_t mbox = so_environment() .create_mbox( g_test_mbox_name ); so_subscribe( mbox ) .in( so_default_state() ) .event( &a_ordinary_t::some_handler ); // Give time to test message sender. std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) ); }
void evt_one( const so_5::event_data_t< msg_one > & ) { for( size_t i = 0; i != 10000u; ++i ) { so_drop_subscription( m_mbox, &a_test_t::evt_two ); so_subscribe( m_mbox ).event( &a_test_t::evt_two ); m_mbox->deliver_signal< msg_two >(); } so_drop_subscription( m_mbox, &a_test_t::evt_two ); }
virtual void so_evt_start() { so_5::mbox_t mbox = so_environment() .create_mbox( so_coop_name() + "_mbox" ); so_subscribe( mbox ) .in( so_default_state() ) .event( &a_master_t::evt_slave_finished ); so_environment().register_agent_as_coop( so_coop_name() + "_slave", new a_slave_t( so_environment(), mbox ) ); }
a_shutdowner_t( so_5::rt::environment_t & env, const so_5::rt::mbox_t & mbox, unsigned int sender_count ) : so_5::rt::agent_t( env ) , m_sender_count( sender_count ) { so_subscribe( mbox ).event< msg_complete >( [=] { m_sender_count -= 1; if( !m_sender_count ) so_environment().stop(); } ); }
void so_define_agent() { so_subscribe( m_mbox ) .event( &a_test_t::evt_default_one ) .event( &a_test_t::evt_default_two ) .event( &a_test_t::evt_default_three ) .event( &a_test_t::evt_default_four ) .event< msg_five >( &a_test_t::evt_five ); so_subscribe( m_mbox ).in( st_1 ) .event( &a_test_t::evt_st_1_one ) .event( &a_test_t::evt_st_1_two ) .event( &a_test_t::evt_st_1_three ) .event( &a_test_t::evt_default_four ) .event< msg_five >( &a_test_t::evt_five ); so_subscribe( m_mbox ).in( st_2 ) .event( &a_test_t::evt_st_2_one ) .event( &a_test_t::evt_st_2_two ) .event( &a_test_t::evt_st_2_three ) .event< msg_five >( &a_test_t::evt_five ); }
virtual void so_define_agent() override { so_set_delivery_filter( m_data_mbox, []( const data & msg ) { return 1 == std::get<0>( msg ); } ); so_subscribe( m_data_mbox ).event( [this]( const data & msg ) { const auto value = std::get<0>( msg ); if( 1 == value ) so_deregister_agent_coop_normally(); else throw std::runtime_error( "unexpected value: " + std::to_string( value ) ); } ); }
virtual void so_define_agent() { so_subscribe( m_self_mbox ).in( st_dummy ) .event( &a_convert_service_t::svc_convert ); }
void so_define_agent() { so_subscribe( m_mbox ).event( &a_test_t::evt_child_deregistered ); }
void so_define_agent() { so_subscribe( m_self_mbox ) .event( &a_test_t::evt_child_started ); }
virtual void so_define_agent() { so_subscribe( m_mbox ).event< msg_initiate_dereg >( &a_parent_t::evt_initiate_dereg ); }