mirror of
https://github.com/postgres/postgres.git
synced 2026-01-29 12:02:15 +03:00
Move src/bin/pg_verifybackup/parse_manifest.c into src/common.
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
This commit is contained in:
46
src/include/common/parse_manifest.h
Normal file
46
src/include/common/parse_manifest.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* 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
|
||||
Reference in New Issue
Block a user