Новое в версии 2.1.0

Фабрики коопераций

Серьезным органичением v.2.0.0 подсистемы SysConf было то, что каждая кооперация должна была описываться объектом so_sysconf_2::coop_handler_t, который должен быть глобальной переменной. Т.е. количество доступных SysConf коопераций определялось на этапе написания DLL. С помощью объектов coop_handler_t нельзя в процессе работы создавать новые кооперации.

Версия v.2.1.0 устраняет этот недостаток, предоставляя класс so_sysconf_2::coop_factory_t. Этот класс предназначен для создания в динамике новых коопераций. Его применение аналогично применению класса so_sysconf_2::coop_handler_t -- нужно создать класс, производный от so_sysconf_2::coop_factory_t, реализовать в нем метод reg() и объявить глобальную переменную этого типа.

Главное отличие so_sysconf_2::coop_factory_t::reg() от so_sysconf_2::coop_handler_t::reg() заключается в:

Так же so_sysconf_2::coop_factory_t::dereg(), в отличии от so_sysconf_2::coop_handler_t::dereg(), не является чистым виртуальным методом и имеет реализацию в базовом классе -- обращение к so_4::api::deregister_coop.

Дополнение формата конфигурационного файла

Для поддержки фабрик коопераций в конфигурационный файл добавлен тег:

[{make-coop
	{factory <str-factory-name>}
	{coop <str-coop-name>}
	[{cfg-file <str-coop-cfg-file-name>}]
}]*

По этой команде у объекта, который выступает в качестве фабрики с именем str-factory-name, вызывается метод so_sysconf_2::coop_factory_t::reg(). В качестве параметров передаются значения str-coop-name и str-coop-cfg-file-name.


Документация по so_sysconf_2 v.2.4.0. Последние изменения: Wed Oct 31 18:55:07 2007. Создано системой  doxygen1.5.4 Intervale SourceForge.net Logo