#ifndef SYNC_H
#define SYNC_H
#include "storage/relfilelocator.h"
typedef enum SyncRequestType
{
SYNC_REQUEST,
SYNC_UNLINK_REQUEST,
SYNC_FORGET_REQUEST,
SYNC_FILTER_REQUEST,
} SyncRequestType;
typedef enum SyncRequestHandler
{
SYNC_HANDLER_MD = 0,
SYNC_HANDLER_CLOG,
SYNC_HANDLER_COMMIT_TS,
SYNC_HANDLER_MULTIXACT_OFFSET,
SYNC_HANDLER_MULTIXACT_MEMBER,
SYNC_HANDLER_NONE,
} SyncRequestHandler;
typedef struct FileTag
{
int16 handler;
int16 forknum;
RelFileLocator rlocator;
uint64 segno;
} FileTag;
extern void InitSync(void);
extern void SyncPreCheckpoint(void);
extern void SyncPostCheckpoint(void);
extern void ProcessSyncRequests(void);
extern void RememberSyncRequest(const FileTag *ftag, SyncRequestType type);
extern bool RegisterSyncRequest(const FileTag *ftag, SyncRequestType type,
bool retryOnError);
#endif