48.1. Функции инициализации#

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. Остальные являются необязательными.