SObjectizer
5.5
|
A utility class for work with dispatchers. More...
#include <disp_repository.hpp>
Public Member Functions | |
disp_repository_t (environment_t &env, named_dispatcher_map_t named_dispatcher_map, event_exception_logger_unique_ptr_t logger) | |
dispatcher_ref_t | query_named_dispatcher (const std::string &disp_name) |
Get a named dispatcher. More... | |
dispatcher_ref_t | add_dispatcher_if_not_exists (const std::string &disp_name, std::function< dispatcher_unique_ptr_t() > disp_factory) |
Add named dispatcher if it is not exists. More... | |
void | start () |
Start all dispatchers. More... | |
void | finish () |
void | install_exception_logger (event_exception_logger_unique_ptr_t logger) |
Install an exception logger. More... | |
void | call_exception_logger (const std::exception &event_exception, const std::string &coop_name) |
Call event exception logger for logging an exception. More... | |
Private Types | |
enum | state_t { state_t::not_started, state_t::started, state_t::finishing } |
State of dispatcher core. More... | |
Private Member Functions | |
void | send_shutdown_signal () |
Sends shutdown signal to all dispatchers. More... | |
void | wait_for_full_shutdown () |
Wait for full stop of all dispatchers. More... | |
Private Attributes | |
environment_t & | m_env |
SObjectizer Environment to work in. More... | |
named_dispatcher_map_t | m_named_dispatcher_map |
Named dispatchers. More... | |
std::mutex | m_exception_logger_lock |
Exception logger object lock. More... | |
event_exception_logger_unique_ptr_t | m_event_exception_logger |
Exception logger. More... | |
state_t | m_state |
State of dispatcher core. More... | |
default_rw_spinlock_t | m_lock |
Object lock. More... | |
A utility class for work with dispatchers.
|
strongprivate |
so_5::impl::disp_repository_t::disp_repository_t | ( | environment_t & | env, |
named_dispatcher_map_t | named_dispatcher_map, | ||
event_exception_logger_unique_ptr_t | logger | ||
) |
dispatcher_ref_t so_5::impl::disp_repository_t::add_dispatcher_if_not_exists | ( | const std::string & | disp_name, |
std::function< dispatcher_unique_ptr_t() > | disp_factory | ||
) |
Add named dispatcher if it is not exists.
void so_5::impl::disp_repository_t::call_exception_logger | ( | const std::exception & | event_exception, |
const std::string & | coop_name | ||
) |
Call event exception logger for logging an exception.
event_exception | Exception caught. |
coop_name | A cooperation to which agent is belong. |
void so_5::impl::disp_repository_t::finish | ( | ) |
Send a shutdown signal for all dispatchers and wait them to full stop.
void so_5::impl::disp_repository_t::install_exception_logger | ( | event_exception_logger_unique_ptr_t | logger | ) |
Install an exception logger.
dispatcher_ref_t so_5::impl::disp_repository_t::query_named_dispatcher | ( | const std::string & | disp_name | ) |
Get a named dispatcher.
null-reference | if dispatcher with disp_name has not been found. |
|
private |
Sends shutdown signal to all dispatchers.
void so_5::impl::disp_repository_t::start | ( | ) |
Start all dispatchers.
|
private |
Wait for full stop of all dispatchers.
|
private |
SObjectizer Environment to work in.
|
private |
Exception logger.
|
private |
Exception logger object lock.
|
private |
Object lock.
|
private |
Named dispatchers.
|
private |
State of dispatcher core.