SObjectizer  5.1
Открытые члены | Закрытые члены | Закрытые данные | Друзья | Полный список членов класса
Класс so_5::rt::so_environment_params_t

Инициализирующие параметры среды so_5. Подробнее...

Открытые члены

so_environment_params_tmbox_mutex_pool_size (unsigned int mutex_pool_size)
 Указать размер пула мутексов для синхронизации работы mbox-ов. Подробнее...
 
so_environment_params_tagent_coop_mutex_pool_size (unsigned int mutex_pool_size)
 Указать размер пула мутексов для коопераций агентов. Подробнее...
 
so_environment_params_tagent_event_queue_mutex_pool_size (unsigned int mutex_pool_size)
 Указать размер пула мутексов для синхронизации локальных очередей событий агентов. Подробнее...
 
so_environment_params_tadd_named_dispatcher (const nonempty_name_t &name, dispatcher_unique_ptr_t &&dispatcher)
 Добавить именованный диспетчер. Подробнее...
 
so_environment_params_ttimer_thread (so_5::timer_thread::timer_thread_unique_ptr_t &&timer_thread)
 Добавить таймерную нить. Подробнее...
 
template<class SO_LAYER >
so_environment_params_tadd_layer (std::unique_ptr< SO_LAYER > &&layer_ptr)
 Добавление дополнительных слоев. Подробнее...
 
so_environment_params_tcoop_listener (coop_listener_unique_ptr_t &&coop_listener)
 
so_environment_params_tevent_exception_logger (event_exception_logger_unique_ptr_t &&logger)
 
so_environment_params_tevent_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_tnamed_dispatcher_map () const
 
const so_layer_map_tso_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. Класс позволяет простым образом указать необходимые параметры оставляя другие по умолчанию.

См. также
http://www.parashift.com/c++-faq/named-parameter-idiom.html
Примеры:
mbapi_4/binary_messages, mbapi_4/ping, mbapi_4/stages, so_5/coop_listener, so_5/disp, so_5/layer, so_5_transport/raw_channe/tcp_srv и so_5_transport/raw_channel/tcp_cln.

Методы

template<class SO_LAYER >
so_environment_params_t& so_5::rt::so_environment_params_t::add_layer ( std::unique_ptr< SO_LAYER > &&  layer_ptr)
inline

Добавление дополнительных слоев.

Если слой такого типа уже добавлен, то он будет замещен вновь добавляемым.

Аргументы
layer_ptrСлой SObjectizer, который должен быть включен в SObjectizer Environment.

Используется в so_sysconf_4::process::run_sobjectizer(), so_sysconf_4::daemon::run_sobjectizer() и so_sysconf_4::ntservice::run_sobjectizer().

void so_5::rt::so_environment_params_t::add_layer ( const type_wrapper_t type,
so_layer_unique_ptr_t  layer_ptr 
)
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-ами.

См. также
so_environment_t::create_local_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. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo