SObjectizer
5.1
|
Инициализирующие параметры среды so_5. Подробнее...
Открытые члены | |
so_environment_params_t & | mbox_mutex_pool_size (unsigned int mutex_pool_size) |
Указать размер пула мутексов для синхронизации работы mbox-ов. Подробнее... | |
so_environment_params_t & | agent_coop_mutex_pool_size (unsigned int mutex_pool_size) |
Указать размер пула мутексов для коопераций агентов. Подробнее... | |
so_environment_params_t & | agent_event_queue_mutex_pool_size (unsigned int mutex_pool_size) |
Указать размер пула мутексов для синхронизации локальных очередей событий агентов. Подробнее... | |
so_environment_params_t & | add_named_dispatcher (const nonempty_name_t &name, dispatcher_unique_ptr_t &&dispatcher) |
Добавить именованный диспетчер. Подробнее... | |
so_environment_params_t & | timer_thread (so_5::timer_thread::timer_thread_unique_ptr_t &&timer_thread) |
Добавить таймерную нить. Подробнее... | |
template<class SO_LAYER > | |
so_environment_params_t & | add_layer (std::unique_ptr< SO_LAYER > &&layer_ptr) |
Добавление дополнительных слоев. Подробнее... | |
so_environment_params_t & | coop_listener (coop_listener_unique_ptr_t &&coop_listener) |
so_environment_params_t & | event_exception_logger (event_exception_logger_unique_ptr_t &&logger) |
so_environment_params_t & | event_exception_handler (event_exception_handler_unique_ptr_t &&handler) |
unsigned int | mbox_mutex_pool_size () const |
unsigned int | agent_coop_mutex_pool_size () const |
unsigned int | agent_event_queue_mutex_pool_size () const |
const named_dispatcher_map_t & | named_dispatcher_map () const |
const so_layer_map_t & | so_layers_map () const |
Закрытые члены | |
void | add_layer (const type_wrapper_t &type, so_layer_unique_ptr_t layer_ptr) |
Добавить новый слой. Подробнее... | |
Закрытые данные | |
unsigned int | m_mbox_mutex_pool_size |
Размер пула мутексов для mbox-ов. | |
unsigned int | m_agent_coop_mutex_pool_size |
Размер пула мутексов для коопераций агентов агентов. | |
unsigned int | m_agent_event_queue_mutex_pool_size |
Размер пула мутексов для локальных очередей событий агентов. | |
named_dispatcher_map_t | m_named_dispatcher_map |
Именованные диспетчеры. | |
so_5::timer_thread::timer_thread_unique_ptr_t | m_timer_thread |
Таймерная нить. | |
so_layer_map_t | m_so_layers |
Дополнительные слои SObjectizer. | |
coop_listener_unique_ptr_t | m_coop_listener |
Слущатель действий над кооперациями. | |
event_exception_logger_unique_ptr_t | m_event_exception_logger |
Логер исключений. | |
event_exception_handler_unique_ptr_t | m_event_exception_handler |
Обработчик исключений. | |
Друзья | |
class | impl::so_environment_impl_t |
Инициализирующие параметры среды so_5.
С помощью данного класса задаются параметры SObjectizer Environment. Класс позволяет простым образом указать необходимые параметры оставляя другие по умолчанию.
|
inline |
Добавление дополнительных слоев.
Если слой такого типа уже добавлен, то он будет замещен вновь добавляемым.
layer_ptr | Слой SObjectizer, который должен быть включен в SObjectizer Environment. |
Используется в so_sysconf_4::process::run_sobjectizer(), so_sysconf_4::daemon::run_sobjectizer() и so_sysconf_4::ntservice::run_sobjectizer().
|
private |
Добавить новый слой.
Если слой такого типа уже добавлен, то он будет замещен вновь добавляемым.
type | Информация о типе слоя. |
layer_ptr | Слой. |
Перекрестные ссылки m_so_layers.
so_environment_params_t & so_5::rt::so_environment_params_t::add_named_dispatcher | ( | const nonempty_name_t & | name, |
dispatcher_unique_ptr_t && | dispatcher | ||
) |
Добавить именованный диспетчер.
По умолчанию SObjectizer Environment имеет только один диспетчер с одной рабочей нитью. Пользователь может добавлять дополнительные -– именованные диспетчеры рабочих нитей.
name | Имя диспетчера. |
dispatcher | Диспетчер. |
Перекрестные ссылки m_named_dispatcher_map и so_5::rt::nonempty_name_t::query_name().
Используется в so_sysconf_4::process::make_dispatcher(), so_sysconf_4::daemon::make_dispatcher() и so_sysconf_4::ntservice::make_dispatcher().
so_environment_params_t & so_5::rt::so_environment_params_t::agent_coop_mutex_pool_size | ( | unsigned int | mutex_pool_size | ) |
Указать размер пула мутексов для коопераций агентов.
Кооперации агентов требуют синхронизации. По рациональным соображениям создавать мутекс для каждой кооперации неэффективно. Поэтому SObjectizer Environment создает пул таких мутексов, которые и назначаются кооперациям.
Перекрестные ссылки m_agent_coop_mutex_pool_size.
so_environment_params_t & so_5::rt::so_environment_params_t::agent_event_queue_mutex_pool_size | ( | unsigned int | mutex_pool_size | ) |
Указать размер пула мутексов для синхронизации локальных очередей событий агентов.
Локальная очередь событий агентов требует синхронизации. Свою локальную очередь агент получает во время создания от SObjectizer Environment, которая передается ему в конструкторе. Но, из-за того что агентов в системе может быть много, то выделять мутекс для каждой локальной очереди не рационально, поэтому SObjectizer Environment создает пул мутексов для обеспечения работы локальных очередей событий агентов.
Перекрестные ссылки m_agent_event_queue_mutex_pool_size.
so_environment_params_t & so_5::rt::so_environment_params_t::mbox_mutex_pool_size | ( | unsigned int | mutex_pool_size | ) |
Указать размер пула мутексов для синхронизации работы mbox-ов.
Для синхронизации действий с mbox-ами необходимы ресурсы, для чего mbox использует мутекс (ACE_RW_Thread_Mutex ). Но т.к. mbox-ов может быть много, и время жизни их может быть достаточно коротким, то было бы не целесообразно в каждый mbox включать собственный метекс. Поэтому в SObjectizer Environment создается пул мутексов для использования обычными mbox-ами.
Перекрестные ссылки m_mbox_mutex_pool_size.
so_environment_params_t & so_5::rt::so_environment_params_t::timer_thread | ( | so_5::timer_thread::timer_thread_unique_ptr_t && | timer_thread | ) |
Добавить таймерную нить.
Если timer_thread указывает на 0, то будет использована таймерная нить по умолчанию.
timer_thread | Таймерная нить. |
Перекрестные ссылки m_timer_thread.
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:23. Создано системой 1.8.3.1 |