#include <iostream>
#include <time.h>
class msg_hello
:
{
public:
std::string m_message;
};
class msg_stop_signal
:
{};
class a_hello_t
:
{
public:
:
base_type_t( env ),
m_self_mbox( so_environment().create_local_mbox() )
{}
virtual ~a_hello_t()
{}
virtual void
virtual void
void
evt_hello_delay(
void
evt_stop_signal(
private:
};
void
a_hello_t::so_define_agent()
{
so_subscribe( m_self_mbox )
.event( &a_hello_t::evt_hello_delay );
so_subscribe( m_self_mbox )
.event( &a_hello_t::evt_stop_signal );
}
void
a_hello_t::so_evt_start()
{
time_t t = time( 0 );
std::cout << asctime( localtime( &t ) )
<< "a_hello_t::so_evt_start()" << std::endl;
std::unique_ptr< msg_hello > msg( new msg_hello );
msg->m_message = "Hello, world! This is SObjectizer v.5.";
so_environment().single_timer(
std::move( msg ),
m_self_mbox,
2*1000 );
}
void
a_hello_t::evt_hello_delay(
{
time_t t = time( 0 );
std::cout << asctime( localtime( &t ) )
<< msg->m_message << std::endl;
so_environment().single_timer< msg_stop_signal >(
m_self_mbox,
2*1000 );
}
void
a_hello_t::evt_stop_signal(
{
time_t t = time( 0 );
std::cout << asctime( localtime( &t ) )
<< "Stop SObjectizer..." << std::endl;
so_environment().stop();
}
void
{
new a_hello_t( env ) ) );
}
int
main( int, char ** )
{
try
{
}
catch( const std::exception & ex )
{
std::cerr << "Error: " << ex.what() << std::endl;
return 1;
}
return 0;
}