mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
This makes it possible for the code to be easily reused by other client-side tools, and/or by the server. Patch by me. Review of this patch in particular by at least Peter Eisentraut; reviewers for the patch series in general include Dilip Kumar, Andres Fruend, David Steele, Álvaro Herrera, and Jakub Wartak. Discussion: http://postgr.es/m/CA+TgmoZ6UGZVnSy5iak6s6+AXu_DewXovDjhLs3-su6nmU_x_g@mail.gmail.com
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-2023, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/common/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_per_file_callback) (JsonManifestParseContext *,
|
|
char *pathname,
|
|
size_t size, pg_checksum_type checksum_type,
|
|
int checksum_length, uint8 *checksum_payload);
|
|
typedef void (*json_manifest_per_wal_range_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_per_file_callback per_file_cb;
|
|
json_manifest_per_wal_range_callback per_wal_range_cb;
|
|
json_manifest_error_callback error_cb;
|
|
};
|
|
|
|
extern void json_parse_manifest(JsonManifestParseContext *context,
|
|
char *buffer, size_t size);
|
|
|
|
#endif
|