24 void *(*check_detail) (
char *,
char *);
62 void *(*check_detail) (
char *,
char *),
130 if (strcmp(ttype->
name, target) == 0)
136 handle->
type = ttype;
145 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
146 errmsg(
"unrecognized target: \"%s\"", target)));
178 while (ttype->
name != NULL)
215 if (target_detail != NULL)
217 (
errcode(ERRCODE_SYNTAX_ERROR),
218 errmsg(
"target \"%s\" does not accept a target detail",
234 if (target_detail == NULL)
236 (
errcode(ERRCODE_SYNTAX_ERROR),
237 errmsg(
"target \"%s\" requires a target detail",
240 return target_detail;
bbsink * bbsink_server_new(bbsink *next, char *pathname)
struct BaseBackupTargetType BaseBackupTargetType
static void * reject_target_detail(char *target, char *target_detail)
BaseBackupTargetHandle * BaseBackupGetTargetHandle(char *target, char *target_detail)
static bbsink * server_get_sink(bbsink *next_sink, void *detail_arg)
static List * BaseBackupTargetTypeList
static bbsink * blackhole_get_sink(bbsink *next_sink, void *detail_arg)
bbsink * BaseBackupGetSink(BaseBackupTargetHandle *handle, bbsink *next_sink)
static BaseBackupTargetType builtin_backup_targets[]
static void * server_check_detail(char *target, char *target_detail)
void BaseBackupAddTarget(char *name, void *(*check_detail)(char *, char *), bbsink *(*get_sink)(bbsink *, void *))
static void initialize_target_list(void)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
List * lappend(List *list, void *datum)
char * pstrdup(const char *in)
MemoryContext TopMemoryContext
MemoryContextSwitchTo(old_ctx)
BaseBackupTargetType * type
void *(* check_detail)(char *, char *)
bbsink *(* get_sink)(bbsink *, void *)