|
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.
1.8.14