Новое в версии 2.1.1

Обработка сигналов прерывания приложения.

Реализована поддержка сигналов операционной системы о прерывании приложения. Подробнее: Обработка сигналов прерывания приложения.

Преобразование имен DLL

Применение so_sysconf_2 в проектах, которые должны были одновременно работать как под Win32, так и под Unix было связано с необходимостью иметь два конфигурационных файла sysconf.cfg -- по файлу на каждую платформу. Это было связано с тем, что в тэге {load-dll} указывалось реальное имя файла DLL. Поэтому на платформе Win32 нужно было указывать имя с расширением ".dll", а на платформе Unix -- имя с префиксом "lib" и расширением ".so".

Для того, чтобы один и тот же файл sysconf.cfg можно было использовать на разных платформах в тэг {load-dll} добавлен необязательный тэг {os-name-convert}, который может содержать значения:

В результате, в sysconf.cfg можно задавать имена dll, например, так:

||
|| Скрипт начальной инициализации MBAPI Server 3
||
{sysconf-script
	|#
		Загрузка и инициализация менеджера подключенных
		клиентов.
		Содержит кооперацию:
			mbapi_srv_3::client_manager
	#|
	{load-dll	"mbapi_srv.client_manager"
		{alias	"mbapi_srv_3::client_manager"}
		{os-name-convert	"simple" }
	}
	{reg-coop	"mbapi_srv_3::client_manager"
		{cfg-file	"etc/mbapi_srv_3/client_manager.cfg" }
	}

	|#
		Загрузка и инициализация открытого входа в
		MBAPI Server 2 через TCP/IP.
		Содержит кооперацию:
			mbapi_srv_3::tcp_entry
	#|
	{load-dll	"mbapi_srv.tcp_entry"
		{alias	"mbapi_srv_3::tcp_entry"}
		{os-name-convert	"simple" }
	}
	{make-coop
		{factory	"mbapi_srv_3::tcp_entry::factory" }
		{coop	"mbapi_srv_3::tcp_entry::default" }
		{cfg-file	"etc/mbapi_srv_3/tcp_entry.cfg" }
	}

	{load-dll	"mbsimexplorer_testsrv"
		{alias	"mbsimexplorer_testsrv_1::server"}
		{os-name-convert	"simple" }
	}
	{make-coop
		{factory	"mbsimexplorer_testsrv_1::server::factory" }
		{coop	"mbsimexplorer_testsrv_1::server" }
	}

}

Что будет приводить к загрузке:

Органичения

Режим преобразования имен simple бесполезен на платформе Unix, если в имени DLL указывается еще и каталог. Например, имя /usr/lib/mysrv будет преобразовано в имя lib/usr/lib/mysrv.so, что явно не соответствует ожидаемому результату. Именно из-за того, что в режиме simple не анализируется имя DLL, этот режим называется simple.
Документация по so_sysconf_2 v.2.4.0. Последние изменения: Wed Oct 31 18:55:07 2007. Создано системой  doxygen1.5.4 Intervale SourceForge.net Logo