29
29
#ifndef _BACKUP_MS_H_
30
30
#define _BACKUP_MS_H_
33
class MSBackupInfo : public CSRefObject {
35
static csWord4 gMaxInfoRef;
36
static CSSyncSparseArray *gBackupInfo;
38
friend class MSBackupTable;
39
friend class MSBackup;
46
time_t completionTime;
49
CSString *backupLocation;
51
csWord4 cloudBackupNo;
57
new_(gBackupInfo, CSSyncSparseArray(5));
61
static void shutDown()
65
gBackupInfo->release();
71
static MSBackupInfo *findBackupInfo(csWord4 backupRefId)
78
info = (MSBackupInfo *) gBackupInfo->get(backupRefId);
85
static MSBackupInfo *getBackupInfo(csWord4 backupRefId)
87
MSBackupInfo *info = findBackupInfo(backupRefId);
91
sprintf(msg, "Backup info with reference ID %u not found", backupRefId);
92
CSException::throwException(CS_CONTEXT, CS_ERR_GENERIC_ERROR, msg);
99
MSBackupInfo(csWord4 id, const char *name, csWord4 db_id, time_t start, time_t end, bool isDump, const char *location, csWord4 cloudRef_arg, csWord4 cloudBackupNo_arg );
102
csWord4 getBackupRefId() { return backupRefId;}
104
const char *getName(){ return db_name->getCString(); }
106
csWord4 getDatabaseId() { return db_id;}
108
time_t getStart(){ return startTime;}
110
time_t getEnd(){ return completionTime;}
112
bool isDump(){ return dump;}
114
bool isBackupRunning(){ return isRunning;}
116
const char *getLocation() { return (backupLocation)?backupLocation->getCString():NULL; }
118
csWord4 getcloudRef(){ return cloudRef;}
119
void setcloudRef(csWord4 no){ cloudRef = no;}
121
csWord4 getcloudBackupNo(){ return cloudBackupNo;}
122
void setcloudBackupNo(csWord4 no){ cloudBackupNo = no;}
124
static MSBackupInfo *startDump(MSDatabase *db, csWord4 cloud_ref, csWord4 backup_no);
126
void startBackup(MSDatabase *pbms_db);
127
void backupCompleted(MSDatabase *db);
128
void backupTerminated(MSDatabase *db);
33
133
class MSOpenSystemTable;
50
150
int getStatus() { return (bu_BackupRunning)?0:bu_State;}
51
151
csWord4 backupID() { return bu_ID;}
53
static MSBackup* newMSBackup(CSString *backup_location, CSString *db_name, csWord4 db_id);
153
static MSBackup* newMSBackup(MSBackupInfo *backup_info);
56
156
void completeBackup();
158
MSBackupInfo *bu_info;
58
160
CSVector *bu_BackupList;
59
161
CSDaemon *bu_Compactor;
60
162
bool bu_BackupRunning;
61
163
enum {BU_RUNNING = -1, BU_COMPLETED = 0, BU_TERMINATED = 1} bu_State;
63
MSDatabase *bu_Database; // The destination database.
165
MSDatabase *bu_SourceDatabase; // The source database.
166
MSDatabase *bu_Database; // The destination database.
64
167
MSOpenSystemTable *bu_dst_dump; // The source database's pbms_dump.
65
168
MSOpenSystemTable *bu_src_dump; // The source database's pbms_dump.
66
169
csWord8 bu_size; // The total size of the data to be backed up.