#ifndef _ARCHIVE_MODULE_H
#define _ARCHIVE_MODULE_H
extern PGDLLIMPORT char *XLogArchiveLibrary;
typedef struct ArchiveModuleState
{
void *private_data;
} ArchiveModuleState;
typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);
typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);
typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);
typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);
typedef struct ArchiveModuleCallbacks
{
ArchiveStartupCB startup_cb;
ArchiveCheckConfiguredCB check_configured_cb;
ArchiveFileCB archive_file_cb;
ArchiveShutdownCB shutdown_cb;
} ArchiveModuleCallbacks;
typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
extern PGDLLEXPORT const ArchiveModuleCallbacks *_PG_archive_module_init(void);
extern PGDLLIMPORT char *arch_module_check_errdetail_string;
#define arch_module_check_errdetail \
pre_format_elog_string(errno, TEXTDOMAIN), \
arch_module_check_errdetail_string = format_elog_string
#endif