#include <iostream>
#include <sstream>
{
public :
{}
{
std::cout << "hello: " << msg << std::endl;
if( 0 == (--m_remaining_messages) )
} );
}
{
create_first_child_coop();
create_second_child_coop();
}
private :
unsigned int m_remaining_messages = 6;
void create_first_child_coop()
{
*this,
disp->binder() );
fill_and_register_coop( std::move( coop ), "one_thread" );
}
void create_second_child_coop()
{
*this,
disp->binder() );
fill_and_register_coop( std::move( coop ), "active_obj" );
}
void fill_and_register_coop(
const std::string & agent_name_prefix )
{
for( int i = 0; i != 3; ++i )
{
const auto agent_name =
agent_name_prefix + "-" + std::to_string( i );
coop->define_agent()
.on_start( [
mbox, agent_name] {
std::ostringstream ss;
ss << agent_name << " on thread: "
<< std::this_thread::get_id();
so_5::send< std::string >(
mbox, ss.str() );
} );
}
}
};
int main()
{
try
{
} );
return 0;
}
catch( const std::exception & x )
{
std::cerr << "*** Exception caught: " << x.what() << std::endl;
}
return 2;
}