49.1. Funciones de inicialización #

Una biblioteca de archivado se carga mediante la carga dinámica de una biblioteca compartida con el nombre de archive_library como nombre base de la biblioteca. Se utiliza la ruta normal de búsqueda de bibliotecas para localizar la biblioteca. Para proporcionar las retrollamadas requeridas del módulo de archivado e indicar que la biblioteca es realmente un módulo de archivado, es necesario proporcionar una función llamada _PG_archive_module_init. El resultado de la función debe ser un puntero a una estructura de tipo ArchiveModuleCallbacks, que contiene todo lo que el código del núcleo necesita saber para hacer uso del módulo de archivado. El valor de retorno debe ser de tiempo de vida del servidor, lo que normalmente se logra definiéndolo como una variable static const en el ámbito global.

typedef struct ArchiveModuleCallbacks
{
    ArchiveStartupCB startup_cb;
    ArchiveCheckConfiguredCB check_configured_cb;
    ArchiveFileCB archive_file_cb;
    ArchiveShutdownCB shutdown_cb;
} ArchiveModuleCallbacks;
typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);

Solo se requiere la retrollamada archive_file_cb. Las demás son opcionales.