PhotoBackupMgr.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #ifndef __PHOTOBACKUPMGR_H__
  2. #define __PHOTOBACKUPMGR_H__
  3. #include "Lock.h"
  4. class CCatalogObj;
  5. class CDatabase;
  6. class CSC_BackupFactory;
  7. interface ISC_BackupInterface;
  8. class CPhotoBackupMgr
  9. {
  10. CPhotoBackupMgr();
  11. public:
  12. ~CPhotoBackupMgr();
  13. static CPhotoBackupMgr* GetInstance()
  14. {
  15. static CPhotoBackupMgr obj;
  16. return &obj;
  17. }
  18. // 1.初始化数据库连接串;
  19. BOOL InitCatalog(
  20. IN CONST DWORD &dwCatalogPort,
  21. IN LPCTSTR lpCatalogSource,
  22. IN LPCTSTR lpCatalogAccount,
  23. IN LPCTSTR lpCatalogPsw,
  24. IN LPCTSTR lpCatalogName);
  25. void StartBackup(); //启动备份线程
  26. void TransformBackupModel(IN CONST INT nModel);
  27. void StartIncrementalBackup(); //增量备份
  28. void TerminateIncrementalBak(DWORD dwMilliseconds = INFINITE); //结束增量备份
  29. void StartAutoBackup(); //自动备份
  30. void TerminateAutoBak(DWORD dwMilliseconds = INFINITE); //结束备份
  31. BOOL BakAllPhoto(CString dir, CString desdir);
  32. BOOL BakAllPhoto(CString dir, CString desdir, CString path1, CString path2, CString path3, CString path4);
  33. void IncrementWork();
  34. void AutoBakWork();
  35. //备份完成回调
  36. static int WINAPI BackupCallBack(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6);
  37. int BackupCallBackPro(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6);
  38. HANDLE GetIncrementalEvent(){return m_hIncrementalEvent;}
  39. int LoadBakModule(IN HINSTANCE hInstance); //加载备份模块
  40. void FreeBakModule(); //释放备份接口
  41. BOOL GetBackupOfSaveDir(OUT CArray<CStringArray, CStringArray> &AryOfValues);
  42. DWORD GetLastDirTime(IN const CString& dir);
  43. void TerminateBakThread();
  44. void MakeBackupDir(IN CONST int nType, IN CONST CString& str, OUT CString& strPath);
  45. private:
  46. int m_nBackupModel; // 备份模式
  47. HANDLE m_hIncrementalThread;
  48. HANDLE m_hIncrementalEvent; // 增量备份退出
  49. HANDLE m_hAutoThread;
  50. HANDLE m_hAutoEvent; // 自动备份退出
  51. CArray<CStringArray, CStringArray> m_bakDirArr; // 备份保存的目录:version表读取
  52. CCatalogObj* m_pCCatalogObj;
  53. CLock m_lock;
  54. CDatabase* m_pdb;
  55. ISC_BackupInterface* m_BakInterf; // 备份接口类
  56. CSC_BackupFactory* m_BakFact; // 工厂类
  57. };
  58. #endif //#ifndef __PHOTOBACKUPMGR_H__