void reg_coop( so_5::environment_t & env ) { so_5::coop_unique_ptr_t coop = env.create_coop( "test_coop" ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); // This agent will throw an exception during binding for dispatcher. coop->add_agent( new a_throwing_t( env ), so_5::disp_binder_unique_ptr_t( new throwing_disp_binder_t ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); coop->add_agent( new a_ordinary_t( env ) ); try { env.register_coop( std::move( coop ) ); } catch(...) {} }
void create_and_register_agent( so_5::environment_t & env, const std::string & parent_coop_name, int ordinal, int max_children, int level, int max_deep ) { so_5::coop_unique_ptr_t coop = env.create_coop( create_coop_name( parent_coop_name, level, ordinal ) ); if( level ) coop->set_parent_coop_name( parent_coop_name ); coop->add_agent( new a_test_t( env, coop->query_coop_name(), parent_coop_name, max_children, level, max_deep ) ); env.register_coop( std::move( coop ) ); }
void init( so_5::environment_t & env ) { auto coop = env.create_coop( "test" ); coop->add_agent( new a_parent_t( env ) ); coop->add_agent( new a_time_sentinel_t( env ) ); env.register_coop( std::move( coop ) ); }
void init( so_5::environment_t & env ) { auto coop = env.create_coop( "driver", so_5::disp::active_obj::create_disp_binder( "active_obj" ) ); coop->add_agent( new a_driver_t( env ) ); coop->add_agent( new a_time_sentinel_t( env ) ); env.register_coop( std::move( coop ) ); }
void reg_coop( const std::string & coop_name, so_5::environment_t & env ) { so_5::coop_unique_ptr_t coop = env.create_coop( coop_name ); coop->add_agent( new test_agent_t( env ) ); coop->add_agent( new test_agent_t( env ) ); env.register_coop( std::move( coop ) ); }
void init( so_5::environment_t & env ) { auto coop = env.create_coop( "test_coop", so_5::disp::active_obj::create_disp_binder( "active_obj" ) ); auto svc_mbox = env.create_mbox(); coop->add_agent( new a_convert_service_t( env, svc_mbox ) ); coop->add_agent( new a_convert_service_t( env, svc_mbox ) ); coop->add_agent( new a_client_t( env, svc_mbox ) ); coop->add_agent( new a_time_sentinel_t( env ) ); env.register_coop( std::move( coop ) ); }