rad
3.0.0
|
#include <smAdapter.hpp>
Public Member Functions | |
SMAdapter (boost::asio::io_service &ios, scxml4cpp::Context *context, scxml4cpp::EventQueue &external_events) | |
virtual | ~SMAdapter () |
void | Load (const std::string &filename, std::list< scxml4cpp::Action * > *action_list, std::list< scxml4cpp::Activity * > *activity_list) |
void | Append (const std::string &filename, std::list< scxml4cpp::Action * > *action_list, std::list< scxml4cpp::Activity * > *activity_list) |
void | Start () |
void | Stop () |
void | PostEvent (SharedEvent e) |
void | ProcessEvent () |
void | ProcessEvent (scxml4cpp::Event *e) |
void | ProcessEvent (const AnyEvent &e) |
void | SetStatusRepresentation (const bool use_fully_qualified_state) |
std::string | GetStatus () const |
std::set< scxml4cpp::State * > | GetActiveStates () |
void | AddStatusListener (scxml4cpp::StatusListener *listener) |
void | RemoveStatusListener (scxml4cpp::StatusListener *listener) |
void | AddEventListener (scxml4cpp::EventListener *listener) |
void | RemoveEventListener (scxml4cpp::EventListener *listener) |
void | SetStatusPublisher (std::function< void(const std::string &)> publisher) |
void | PublishStatus () |
void | RegisterRejectHandler (const std::string &id, std::function< void(const rad::AnyEvent &, const std::string &state)> handler) |
template<typename T > | |
void | RegisterDefaultRequestRejectHandler () |
void | SetLogLevel (const std::string &level) |
SMAdapter (const SMAdapter &e)=delete | |
SMAdapter & | operator= (SMAdapter &e)=delete |
SMAdapter (boost::asio::io_service &ios, scxml4cpp::Context *context, scxml4cpp::EventQueue &external_events) | |
virtual | ~SMAdapter () |
void | Load (const std::string &filename, std::list< scxml4cpp::Action * > *action_list, std::list< scxml4cpp::Activity * > *activity_list) |
void | Append (const std::string &filename, std::list< scxml4cpp::Action * > *action_list, std::list< scxml4cpp::Activity * > *activity_list) |
void | Start () |
void | Stop () |
void | PostEvent (SharedEvent e) |
void | ProcessEvent () |
void | ProcessEvent (scxml4cpp::Event *e) |
void | ProcessEvent (const AnyEvent &e) |
void | SetStatusRepresentation (const bool use_fully_qualified_state) |
std::string | GetStatus () const |
std::set< scxml4cpp::State * > | GetActiveStates () |
void | AddStatusListener (scxml4cpp::StatusListener *listener) |
void | RemoveStatusListener (scxml4cpp::StatusListener *listener) |
void | AddEventListener (scxml4cpp::EventListener *listener) |
void | RemoveEventListener (scxml4cpp::EventListener *listener) |
void | SetStatusPublisher (std::function< void(const std::string &)> publisher) |
void | PublishStatus () |
void | RegisterRejectHandler (const std::string &id, std::function< void(const rad::AnyEvent &, const std::string &state)> handler) |
template<typename T > | |
void | RegisterDefaultRequestRejectHandler () |
void | SetLogLevel (const std::string &level) |
SMAdapter (const SMAdapter &e)=delete | |
SMAdapter & | operator= (SMAdapter &e)=delete |
This is the adapter to the SCXML engine.
This is the adapter to the SCXML engine.
rad::SMAdapter::SMAdapter | ( | boost::asio::io_service & | ios, |
scxml4cpp::Context * | context, | ||
scxml4cpp::EventQueue & | external_events | ||
) |
[in] | ios | Event loop. |
[in] | context | SCXML context. |
[in] | external_events | SCXML external event queue. |
|
virtual |
Cleanup before quitting.
|
delete |
rad::SMAdapter::SMAdapter | ( | boost::asio::io_service & | ios, |
scxml4cpp::Context * | context, | ||
scxml4cpp::EventQueue & | external_events | ||
) |
|
virtual |
|
delete |
void rad::SMAdapter::AddEventListener | ( | scxml4cpp::EventListener * | listener | ) |
Register a listener for the event processed notification.
[in] | listener | Listener to be registered. |
void rad::SMAdapter::AddEventListener | ( | scxml4cpp::EventListener * | listener | ) |
void rad::SMAdapter::AddStatusListener | ( | scxml4cpp::StatusListener * | listener | ) |
Register a listener for a change of SM state notification.
[in] | listener | Listener to be registered. |
void rad::SMAdapter::AddStatusListener | ( | scxml4cpp::StatusListener * | listener | ) |
void rad::SMAdapter::Append | ( | const std::string & | filename, |
std::list< scxml4cpp::Action * > * | action_list, | ||
std::list< scxml4cpp::Activity * > * | activity_list | ||
) |
void rad::SMAdapter::Append | ( | const std::string & | filename, |
std::list< scxml4cpp::Action * > * | action_list, | ||
std::list< scxml4cpp::Activity * > * | activity_list | ||
) |
std::set< scxml4cpp::State * > rad::SMAdapter::GetActiveStates | ( | ) |
std::set<scxml4cpp::State*> rad::SMAdapter::GetActiveStates | ( | ) |
std::string rad::SMAdapter::GetStatus | ( | ) | const |
std::string rad::SMAdapter::GetStatus | ( | ) | const |
void rad::SMAdapter::Load | ( | const std::string & | filename, |
std::list< scxml4cpp::Action * > * | action_list, | ||
std::list< scxml4cpp::Activity * > * | activity_list | ||
) |
Load an SCXML model from file.
[in] | filename | SCXML model to load. |
[in] | action_list | List of actions mapped to SCXML model. |
[in] | activity_list | List of activities mapped to SCXML model. |
void rad::SMAdapter::Load | ( | const std::string & | filename, |
std::list< scxml4cpp::Action * > * | action_list, | ||
std::list< scxml4cpp::Activity * > * | activity_list | ||
) |
void rad::SMAdapter::PostEvent | ( | SharedEvent | e | ) |
Post asynchronously an event, to be processed by the SM, in the Event Loop. Note: this method can be invoked also by passing UniqueEvent as argument since C++ will upgrade it SharedEvent automatically.
[in] | e | Shared RAD event to post. |
void rad::SMAdapter::PostEvent | ( | SharedEvent | e | ) |
void rad::SMAdapter::ProcessEvent | ( | ) |
Trigger the processing of the events in the SM external event queue.
void rad::SMAdapter::ProcessEvent | ( | ) |
void rad::SMAdapter::ProcessEvent | ( | const AnyEvent & | e | ) |
Method invoked to trigger the processing of an event by the SM.
[in] | e | RAD event to be processed by the SM |
void rad::SMAdapter::ProcessEvent | ( | const AnyEvent & | e | ) |
void rad::SMAdapter::ProcessEvent | ( | scxml4cpp::Event * | e | ) |
Trigger the processing of the given event. (the processing terminates when the SM external event queue is empty)
[in] | e | SCXML event to be processed. |
void rad::SMAdapter::ProcessEvent | ( | scxml4cpp::Event * | e | ) |
void rad::SMAdapter::PublishStatus | ( | ) |
Publishes the SM information.
void rad::SMAdapter::PublishStatus | ( | ) |
|
inline |
Method to register the reject handler implemented via the free function rad::DefaultRequestRejectHandler() (see above) to be used to reject event associated to requests.
TODO find out why the logging doesn't work in templated inline methods!
|
inline |
Method to register the reject handler implemented via the free function rad::DefaultRequestRejectHandler() (see above) to be used to reject event associated to requests.
TODO find out why the logging doesn't work in templated inline methods!
void rad::SMAdapter::RegisterRejectHandler | ( | const std::string & | id, |
std::function< void(const rad::AnyEvent &, const std::string &state)> | handler | ||
) |
Method to register a handler that can be used to reject an event.
id | Event identifier to be rejected. |
handler | Function implementing the rejection handler. |
Register a function to be invoked when an event is ingored/rejected by the SM engine.
[in] | id | Event identifier. |
[in] | handler | Function to be invoked. |
void rad::SMAdapter::RegisterRejectHandler | ( | const std::string & | id, |
std::function< void(const rad::AnyEvent &, const std::string &state)> | handler | ||
) |
Method to register a handler that can be used to reject an event.
id | Event identifier to be rejected. |
handler | Function implementing the rejection handler. |
void rad::SMAdapter::RemoveEventListener | ( | scxml4cpp::EventListener * | listener | ) |
Deregister a listener for the event processed notification.
[in] | listener | Listener to be deregistered. |
void rad::SMAdapter::RemoveEventListener | ( | scxml4cpp::EventListener * | listener | ) |
void rad::SMAdapter::RemoveStatusListener | ( | scxml4cpp::StatusListener * | listener | ) |
Deregister a listener for a change of SM state notification.
[in] | listener | Listener to be deregistered. |
void rad::SMAdapter::RemoveStatusListener | ( | scxml4cpp::StatusListener * | listener | ) |
void rad::SMAdapter::SetLogLevel | ( | const std::string & | level | ) |
Sets the log level of the SM engine.
[in] | level | The desired log level. |
void rad::SMAdapter::SetLogLevel | ( | const std::string & | level | ) |
void rad::SMAdapter::SetStatusPublisher | ( | std::function< void(const std::string &)> | publisher | ) |
Configure a function to be used as publisher for the SM information.
void rad::SMAdapter::SetStatusPublisher | ( | std::function< void(const std::string &)> | publisher | ) |
void rad::SMAdapter::SetStatusRepresentation | ( | const bool | use_fully_qualified_state | ) |
Set a flag indicating whether states ID are fully qualified (i.e. include parent states) or not.
void rad::SMAdapter::SetStatusRepresentation | ( | const bool | use_fully_qualified_state | ) |
void rad::SMAdapter::Start | ( | ) |
Starts the SM model interpretation.
void rad::SMAdapter::Start | ( | ) |
void rad::SMAdapter::Stop | ( | ) |
Stops the SM model interpretation.
void rad::SMAdapter::Stop | ( | ) |