virtual void so_define_agent() override { so_set_delivery_filter( m_data_mbox, []( const data & msg ) { return 1 == std::get<0>( msg ); } ); so_default_state() .event( m_data_mbox, [this]( const data & msg ) { const auto value = std::get<0>( msg ); if( 1 != value ) throw std::runtime_error( "unexpected data value: " + std::to_string( value ) ); ++m_values_accepted; } ) .event< finish >( [this] { if( 2 != m_values_accepted ) throw std::runtime_error( "unexpected count of " "accepted data instances: " + std::to_string( m_values_accepted ) ); so_deregister_agent_coop_normally(); } ); }
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 ); }
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 ); } ); }
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 ) ); } ); }