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.