47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* parse_manifest.h
|
|
* Parse a backup manifest in JSON format.
|
|
*
|
|
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/bin/pg_verifybackup/parse_manifest.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef PARSE_MANIFEST_H
|
|
#define PARSE_MANIFEST_H
|
|
|
|
#include "access/xlogdefs.h"
|
|
#include "common/checksum_helper.h"
|
|
#include "mb/pg_wchar.h"
|
|
|
|
struct JsonManifestParseContext;
|
|
typedef struct JsonManifestParseContext JsonManifestParseContext;
|
|
|
|
typedef void (*json_manifest_perfile_callback) (JsonManifestParseContext *,
|
|
char *pathname,
|
|
size_t size, pg_checksum_type checksum_type,
|
|
int checksum_length, uint8 *checksum_payload);
|
|
typedef void (*json_manifest_perwalrange_callback) (JsonManifestParseContext *,
|
|
TimeLineID tli,
|
|
XLogRecPtr start_lsn, XLogRecPtr end_lsn);
|
|
typedef void (*json_manifest_error_callback) (JsonManifestParseContext *,
|
|
const char *fmt,...) pg_attribute_printf(2, 3)
|
|
pg_attribute_noreturn();
|
|
|
|
struct JsonManifestParseContext
|
|
{
|
|
void *private_data;
|
|
json_manifest_perfile_callback perfile_cb;
|
|
json_manifest_perwalrange_callback perwalrange_cb;
|
|
json_manifest_error_callback error_cb;
|
|
};
|
|
|
|
extern void json_parse_manifest(JsonManifestParseContext *context,
|
|
char *buffer, size_t size);
|
|
|
|
#endif
|