#ifndef __PHOTOBACKUPMGR_H__ #define __PHOTOBACKUPMGR_H__ #include "Lock.h" class CCatalogObj; class CDatabase; class CSC_BackupFactory; interface ISC_BackupInterface; class CPhotoBackupMgr { CPhotoBackupMgr(); public: ~CPhotoBackupMgr(); static CPhotoBackupMgr* GetInstance() { static CPhotoBackupMgr obj; return &obj; } // 1.初始化数据库连接串; BOOL InitCatalog( IN CONST DWORD &dwCatalogPort, IN LPCTSTR lpCatalogSource, IN LPCTSTR lpCatalogAccount, IN LPCTSTR lpCatalogPsw, IN LPCTSTR lpCatalogName); void StartBackup(); //启动备份线程 void TransformBackupModel(IN CONST INT nModel); void StartIncrementalBackup(); //增量备份 void TerminateIncrementalBak(DWORD dwMilliseconds = INFINITE); //结束增量备份 void StartAutoBackup(); //自动备份 void TerminateAutoBak(DWORD dwMilliseconds = INFINITE); //结束备份 BOOL BakAllPhoto(CString dir, CString desdir); BOOL BakAllPhoto(CString dir, CString desdir, CString path1, CString path2, CString path3, CString path4); void IncrementWork(); void AutoBakWork(); //备份完成回调 static int WINAPI BackupCallBack(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6); int BackupCallBackPro(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6); HANDLE GetIncrementalEvent(){return m_hIncrementalEvent;} int LoadBakModule(IN HINSTANCE hInstance); //加载备份模块 void FreeBakModule(); //释放备份接口 BOOL GetBackupOfSaveDir(OUT CArray &AryOfValues); DWORD GetLastDirTime(IN const CString& dir); void TerminateBakThread(); void MakeBackupDir(IN CONST int nType, IN CONST CString& str, OUT CString& strPath); private: int m_nBackupModel; // 备份模式 HANDLE m_hIncrementalThread; HANDLE m_hIncrementalEvent; // 增量备份退出 HANDLE m_hAutoThread; HANDLE m_hAutoEvent; // 自动备份退出 CArray m_bakDirArr; // 备份保存的目录:version表读取 CCatalogObj* m_pCCatalogObj; CLock m_lock; CDatabase* m_pdb; ISC_BackupInterface* m_BakInterf; // 备份接口类 CSC_BackupFactory* m_BakFact; // 工厂类 }; #endif //#ifndef __PHOTOBACKUPMGR_H__