*
* backup.h: Backup utils used by Backup/Restore manager.
*
* Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd.
* Portions Copyright (c) 2009-2013, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2015-2018, Postgres Professional
*
*-------------------------------------------------------------------------
*/
#ifndef BACKUP_H
#define BACKUP_H
#include "../../pg_probackup.h"
#include "appender.h"
#include "thread.h"
extern void performBackup(backup_files_arg* arg);
extern void initPerformBackup(backup_files_arg* arg, backupReaderThreadArgs* thread_args);
extern void backupDataFiles(backup_files_arg* arg);
extern void backupDirectories(FileAppender* appender, backup_files_arg* arg);
extern void backupFiles(FileAppender* appender, backup_files_arg* arg);
extern void appendDir(FileAppender* appender, const char* dirPath, uint32 permission,
int external_dir_num, device_type_t type);
extern void appendDataFile(FileAppender* appender, char* fileBuffer, pgFile* file,
FILE_APPEND_SEG_TYPE type, char* from_fullpath, backup_files_arg* arg);
extern void appendNonDataFile(FileAppender* appender, char* fileBuffer, pgFile* file,
FILE_APPEND_SEG_TYPE type, char* from_fullpath, backup_files_arg* arg);
extern void appendPgControlFile(FileAppender* appender, const char *from_fullpath, fio_location from_location, pgFile *file);
extern int writeDataFile(FileAppender* appender, char* fileBuffer, pgFile* file, char* from_fullpath, backup_files_arg* arg);
#endif