48.1. Функции инициализации#
48.1. Функции инициализации #
Библиотека архива загружается путем динамической загрузки общей библиотеки с
именем archive_library в качестве базового имени библиотеки.
Для поиска библиотеки используется обычный путь поиска библиотек. Чтобы предоставить
необходимые обратные вызовы модуля архива и указать, что библиотека действительно
является модулем архива, она должна предоставить функцию с именем
_PG_archive_module_init
. Результатом выполнения функции
должен быть указатель на структуру типа
ArchiveModuleCallbacks
, которая содержит все, что
необходимо основному коду для использования модуля архива. Возвращаемое значение
должно существовать в течение всего времени работы сервера, что обычно достигается
путем определения его как переменной static const
в глобальной области видимости.
typedef struct ArchiveModuleCallbacks { ArchiveStartupCB startup_cb; ArchiveCheckConfiguredCB check_configured_cb; ArchiveFileCB archive_file_cb; ArchiveShutdownCB shutdown_cb; } ArchiveModuleCallbacks; typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
Требуется только обратный вызов archive_file_cb
. Остальные являются необязательными.