SObjectizer  5.1
Открытые типы | Открытые члены | Закрытые члены | Закрытые данные | Полный список членов класса
Класс so_sysconf_4::impl::dll_t

Класс, реализующий работу с dll. Подробнее...

Граф наследования:so_sysconf_4::impl::dll_t:

Открытые типы

typedef std::vector< std::string > names_vec_t
 

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

 dll_t (const std::string &dll_file)
 
bool load (std::string &error_descr)
 Загрузить DLL. Подробнее...
 
bool unload (std::string &error_descr)
 Выгрузить DLL. Подробнее...
 
const std::string & query_file () const
 Получить путь к dll.
 
void inc_ref_count ()
 Увеличить количество ссылок на dll.
 
void dec_ref_count ()
 Уменьшить количество ссылок на dll.
 
unsigned int query_ref_count () const
 Определить количество ссылок на dll.
 
module_description_tquery_module_description ()
 Получить описание модуля.
 
void append_sysconf_info (sysconf_bulk_info_t &sysconf_bulk_info) const
 Добавить информацию о dll. Подробнее...
 
void has_added_extra_layers ()
 Переводит m_has_added_extra_layers в true.
 

Закрытые члены

pfn_module_description_t module_description_func (std::string &error_descr)
 Получить указатель на функцию описания модуля. Подробнее...
 
bool obtain_module_description (std::string &error_descr)
 Получить из dll описание модуля. Подробнее...
 

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

const std::string m_dll_file
 Физический путь к dll.
 
unsigned int m_ref_count
 Счетчик количества ссылок на DLL. Подробнее...
 
std::unique_ptr< ACE_DLL > m_os_dll_ptr
 ACE обертка для работы с DLL.
 
module_description_unique_ptr_t m_module_description
 Объект с описанием модуля. Подробнее...
 
bool m_has_added_extra_layers
 dll содержит загруженный в so_5 дополнительный слой. Подробнее...
 

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

Класс, реализующий работу с dll.

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

so_sysconf_4::impl::dll_t::dll_t ( const std::string &  dll_file)
Аргументы
dll_fileФизический путь к dll.

Методы

void so_sysconf_4::impl::dll_t::append_sysconf_info ( sysconf_bulk_info_t sysconf_bulk_info) const

Добавить информацию о dll.

Аргументы
sysconf_bulk_infoКонтейнер информации о составе SO SysConf 4.

Перекрестные ссылки m_dll_file и so_sysconf_4::sysconf_bulk_info_t::m_dlls.

bool so_sysconf_4::impl::dll_t::load ( std::string &  error_descr)

Загрузить DLL.

Возвращает
true, если dll успешно загружена. В противном случае в error_descr помещается описание ошибки.
Аргументы
error_descrОписание ошибки.

Перекрестные ссылки m_dll_file, m_os_dll_ptr и obtain_module_description().

pfn_module_description_t so_sysconf_4::impl::dll_t::module_description_func ( std::string &  error_descr)
private

Получить указатель на функцию описания модуля.

В случае успеха возвращает ненулевой указатель на функцию описания. В случае ошибки возвращает 0, а в error_msg записывает ообщение об ошибке.

Аргументы
error_descrОписнание ошибки.

Перекрестные ссылки m_os_dll_ptr и so_sysconf_4::module_descriptor_func_name().

Используется в obtain_module_description().

bool so_sysconf_4::impl::dll_t::obtain_module_description ( std::string &  error_descr)
private

Получить из dll описание модуля.

Если описание модуля получить удалось, то возвращается true. В противном случае вернется false.

Аргументы
error_descrОписнание ошибки.

Перекрестные ссылки m_module_description, module_description_func() и query_file().

Используется в load().

bool so_sysconf_4::impl::dll_t::unload ( std::string &  error_descr)

Выгрузить DLL.

Возвращает
true, если операция выгрузки прошла успешно.
Аргументы
error_descrОписнание ошибки.

Перекрестные ссылки m_has_added_extra_layers, m_module_description, m_os_dll_ptr и query_ref_count().

Данные класса

bool so_sysconf_4::impl::dll_t::m_has_added_extra_layers
private

dll содержит загруженный в so_5 дополнительный слой.

После добавления дополнительного слоя в so_5, он не может быть выгружен из среды до завершения работы so_5, а значит и dll с данным слоем не может быть выгружена.

Используется в has_added_extra_layers() и unload().

module_description_unique_ptr_t so_sysconf_4::impl::dll_t::m_module_description
private

Объект с описанием модуля.

Создается при вызове метода load, если load прошел успешно.

Внимание
если в m_module_description, содержится указаетль на реальный объект, то при вызове unload, перед самой выгрузкой dll он уничтожается.
Заметки
в объявлении класса идет строго после m_os_dll_ptr, чтобы при уничтожении объекта класса, деструктор m_module_description, был вызван раньше, чем деструктор m_os_dll_ptr.

Используется в obtain_module_description(), query_module_description() и unload().

unsigned int so_sysconf_4::impl::dll_t::m_ref_count
private

Счетчик количества ссылок на DLL.

Каждая зарегистрированная кооперация увеличивает счетчик ссылок на 1.

Используется в dec_ref_count(), inc_ref_count() и query_ref_count().


Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:25. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo