Класс so_4::rt::dyn_agent_coop_helper_t

Полный список членов класса


Подробное описание

Упрощение регистрации динамических коопераций.

Класс, который пытается регистрировать кооперацию, и если это не удается, удаляет кооперацию в своем деструкторе.

Динамическая кооперация автоматически уничтожается SObjectizer-ом только если она была успешно зарегистрирована. Если же register_coop завершился неудачно, то отвественность за уничтожение динамической кооперации лежит на прикладном программисте. Т.е., при работе с dyn_agent_coop_t необходимо контролировать код возврата register_coop, и если он свидетельствует об ошибке -- уничтожать объект dyn_agent_coop_t.

Все эти действия берет на себя класс dyn_agent_coop_helper_t. Если кооперацию не удалось зарегистрировать, то объект dyn_agent_coop_t будет уничтожен в деструкторе dyn_agent_coop_helper_t.

Пример:

	// Создаем динамическую кооперацию из одного агента.
	dyn_agent_coop_helper_t helper( new dyn_agent_coop_t(
		new some_agent_t( "a_some_agent" ) ) );
	if( !helper.result() )
		// Кооперация успешно зарегистрирована.
		...
	else
		// Кооперация не зарегистрирована.
		// Объекты dyn_agent_coop_t и some_agent_t
		// будут уничтожены в деструкторе helper.
		...
	
Примеры:

sample/dyn_reg/main.cpp, sample/filter/c1.cpp, sample/filter/c2.cpp, sample/parent_insend/main.cpp, sample/qt_ring/main.cpp и sample/subscr_hook/main.cpp.


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

 dyn_agent_coop_helper_t (dyn_agent_coop_t *coop)
 Конструктор осуществляет попытку регистрации агента.
const ret_code_tresult () const
 Результат попытки регистрации.

Закрытые данные

dyn_agent_coop_tm_coop
ret_code_t m_rc

Конструктор(ы)

so_4::rt::dyn_agent_coop_helper_t::dyn_agent_coop_helper_t ( dyn_agent_coop_t coop  ) 

Конструктор осуществляет попытку регистрации агента.

Аргументы:
coop  Указатель на динамически-созданный объект.

Перекрестные ссылки so_4::api::register_coop().


Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой  doxygen1.5.6 Intervale SourceForge.net Logo