Les fonctions de support d'archivage définissent le comportement d'archivage proprement dit du module. Le serveur les appellera suivant les besoins pour traiter chaque fichier segment WAL individuellement.
    La fonction de rappel startup_cb est appelée peu après
    le chargement du module. Ce rappel peut être utilisé pour effectuer
    toute initialisation requise. Si le module d'archivage comprend des états,
    il est possible de les stocker en
    utilisant state->private_data.
typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);
    La fonction de support check_configured_cb est appelée pour
    déterminer si le module est pleinement configuré et prêt à traiter des
    fichiers segment WAL (par exemple, si ses paramètres de configuration sont
    définis avec des valeurs valides). Si la fonction
    check_configured_cb n'est pas définie, le serveur
    présumera que le module est configuré.
typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);
    Si true est renvoyé, le serveur procédera à l'archivage
    en appelant la fonction archive_file_cb. Si
    false est renvoyé, l'archivage ne sera pas effectué, et
    l'archiver émettra le message suivant dans les traces du serveur :
WARNING: archive_mode enabled, yet archiving is not configured
    Dans ce dernier cas, le serveur appellera périodiquement cette fonction, et
    l'archivage ne sera effectué que lorsque le booléen true sera
    renvoyé.
   
     Lorsqu'il renvoie false, il pourrait être utile
     d'ajouter quelques informations supplémentaires au message
     d'avertissement générique. Pour cela, vous pouvez fournir un message à
     la macro arch_module_check_errdetail avant de
     renvoyer false. Tout comme errdetail
     (), cette macro accepte une chaîne de formatage suivie d'une
     liste optionnelle d'arguments. La chaîne résultante sera émise sous la
     forme d'une ligne DETAIL du message d'avertissement.
    
    La fonction archive_file_cb est appelée pour archiver un
    fichier segment WAL individuel.
typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);
    Si la valeur true est renvoyée, le serveur procédera comme si le
    fichier était archivé avec succès, ce qui peut inclure de recycler ou supprimer
    le fichier segment WAL original. Si la valeur false ou une
    erreur est renvoyée, le
    serveur conservera le fichier segment WAL original et réessayera de
    l'archiver plus tard.
    file contiendra juste le nom du fichier du segment WAL à
    archiver, alors que path contiendra le chemin complet du
    fichier segment WAL (nom du fichier inclus).
   
     La fonction callback archive_file_cb est appelé dans
     un contexte mémoire succinct qui sera réinitialisé entre chaque appel.
     Si vous avez besoin d'un stockage plus permanent, créez un contexte
     mémoire dans la fonction callback startup_cb du
     module.
    
    La fonction shutdown_cb est appelée quand le processus
    archiver s'arrête (par exemple, après une erreur) ou si la valeur de
    archive_library change. Si la fonction
    shutdown_cb n'est pas définie, aucune action spécifique
    ne sera entreprise lors de ces situations.
    Si le module d'archivage gère des états, ce rappel devrait les libérer pour éviter
    des fuites mémoire.
typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);