#include <iostream>
#include <time.h>
{
struct greeting_message
{
const std::string m_greeting;
};
const state_t st_1{ this, "state_1" };
const state_t st_2{ this, "state_2" };
const state_t st_3{ this, "state_3" };
const state_t st_shutdown{ this, "shutdown" };
public:
{}
{
.
event( [
this]( mhood_t< change_state_signal > ) { st_1.activate(); } )
.event( []( const greeting_message & msg ) {
std::cout << "*** 0) greeting: " << msg.m_greeting
<< ", ptr: " << &msg << std::endl;
} );
st_1
.
event( [
this]( mhood_t< change_state_signal > ) { st_2.activate(); } );
st_2
.
event( [
this]( mhood_t< change_state_signal > ) { st_3.activate(); } )
.event( []( const greeting_message & msg ) {
std::cout << "*** 2) greeting: " << msg.m_greeting
<< ", ptr: " << &msg << std::endl;
} );
st_3
.
event( [
this]( mhood_t< change_state_signal > ) { st_shutdown.activate(); } );
st_shutdown
.
event( [
this]( mhood_t< change_state_signal > ) {
.event( []( const greeting_message & msg ) {
std::cout << "*** F) greeting: " << msg.m_greeting
<< ", ptr: " << &msg << std::endl;
} );
}
{
m_greeting_timer_id = so_5::send_periodic< greeting_message >(
*this,
std::chrono::milliseconds{ 50 },
std::chrono::milliseconds{ 100 },
"Hello, World!" );
m_change_timer_id = so_5::send_periodic< change_state_signal >(
*this,
std::chrono::milliseconds{ 80 },
std::chrono::milliseconds{ 100 } );
}
private:
};
int main()
{
try
{
} );
},
params.message_delivery_tracer(
} );
}
catch( const std::exception & ex )
{
std::cerr << "Error: " << ex.what() << std::endl;
return 1;
}
return 0;
}