Une bibliothèque d'archivage est chargée en appelant dynamiquement une bibliothèque
partagée dont le nom de base est fourni par le paramètre
archive_library. Le chemin habituel de recherche des bibliothèques
est utilisé pour localiser cette bibliothèque. Pour fournir les
fonctions de support nécessaires au module d'archivage et pour indiquer que la bibliothèque
est en fait un module d'archivage, une fonction
_PG_archive_module_init
doit y être fournie.
Le résultat de la fonction doit être un pointeur vers une structure de type
ArchiveModuleCallbacks
, qui contient tout
ce que le code principal a besoin de savoir pour utiliser le module d'archivage.
La valeur de retour doit être conservée pendant la durée de vie du serveur,
ce qui est généralement effectué en la définissant comme une variable
static const
dans le périmètre global.
typedef struct ArchiveModuleCallbacks { ArchiveStartupCB startup_cb; ArchiveCheckConfiguredCB check_configured_cb; ArchiveFileCB archive_file_cb; ArchiveShutdownCB shutdown_cb; } ArchiveModuleCallbacks; typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
Seule la fonction de support archive_file_cb
est requise. Les
autres sont optionnelles.