123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #ifndef __CSC_BACKUP_H_
- #define __CSC_BACKUP_H_
- #include <vector>
- #include "BackupInterface.h"
- #include "BackupListMgr.h"
- typedef struct SPhotoPathInfo
- {
- DWORD dwFileSize; //文件大小
- CString strRootDir; //主目录,如:\\127.0.0.1\客户原片(管理软件)$
- CString strChildDir; //子目录,如:1234.ly.com\\20151010-001\\新生儿
- CString strAllPath; //全路径,如:\\127.0.0.1\客户原片(管理软件)$\1234.ly.com\\20151010-001\\新生儿\001.jpg
- CString strFile; //文件,如:001.jpg
- }SPHOTOPATHINFO, *LPSPHOTOPATHINFO;
- class CSC_Backup : public ISC_BackupInterface
- {
- public:
- CSC_Backup();
- virtual ~CSC_Backup();
- STDMETHODIMP QueryInterface(REFIID, void**);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- //用于增量备份
- virtual BOOL WINAPI InitBackupInfo(
- IN LPCTSTR lpDomain, // 店域名
- IN LPCTSTR lpOrderNum, // 订单号
- IN LPCTSTR lpOptTime, // 操作时间
- IN LPCTSTR lpPhotos, // 要备份的相片名集合
- IN LPCTSTR lpDest, // 备份的目标目录,如:\\\\127.0.0.1\\客户原片备份(管理软件)$
- IN const BYTE byPhotoType, // 相片类型
- IN const BOOL bBakMImage // 是否备份m图
- );
- //用于备份某订单所有相片
- virtual BOOL WINAPI InitBackupInfo(
- IN LPCTSTR lpDomain, // 店域名
- IN LPCTSTR lpOrderNum, // 订单号
- IN LPCTSTR lpDest, // 备份的目标目录,如:\\\\127.0.0.1\\客户原片备份(管理软件)$
- IN const BYTE byPhotoType, // 相片类型
- IN const BOOL bBakMImage // 是否备份m图
- );
- /*
- //添加共享目录数据
- virtual BOOL WINAPI AddShareDirData(
- IN LPCTSTR lpDir, // 需备份的共享目录
- IN const BYTE byPhotoType, // 相片类型
- IN const BYTE byMaxCapacity, // 最大容量
- IN const BYTE byPriority // 优先级
- );
- */
- virtual BOOL WINAPI InitShareDirData(
- IN const BOOL bEnable, //是否可用
- IN LPCTSTR lpBranchId, //域名
- IN LPCTSTR lpShareDir, //共享目录
- IN const BYTE byMinCapacity, //最小容量
- IN const BYTE byMaxCapacity, //最大容量
- IN const BYTE byPhotoType, //相片类型
- IN const BYTE byPriority //优先级
- );
- virtual int WINAPI StartBackup(IN LPCTSTR lpLocalDomain, IN PFCALLBACK callbackfun/*回调函数通知备份完成*/);
- virtual void WINAPI TerminateBackup();
- virtual BOOL WINAPI IsBackup();
- void BackupWork();
- private:
- int FilteringFileInDir(
- IN const CString& strDir,
- IN const CString& strDomain,
- IN const CString& OrderNum,
- IN const CString& strOptTime,
- IN std::vector<TCHAR*>& vFileName,
- OUT std::vector<TCHAR*>& vChildDir,
- OUT std::vector<LPSPHOTOPATHINFO>& vPaths);
- int FilteringFileInDir(
- IN const CString& strDir,
- IN const CString& strDomain,
- IN const CString& OrderNum,
- IN const BOOL bBakMImage,
- OUT CString& strOptTime,
- OUT std::vector<TCHAR*>& vChildDir,
- OUT std::vector<LPSPHOTOPATHINFO>& vPaths);
- //分割相片名字串如:001|002|003|
- void SplitPhotos(IN CString& strPhotos, IN const BOOL bBakMImage, OUT std::vector<TCHAR*>& vPhotoName);
- BOOL CheckMultiLevDir(IN LPCTSTR lpDir, IN LPCTSTR lpChild);
- void ClearObjVector(std::vector<LPSPHOTOPATHINFO>& vPhotoPath);
- void ClearStringVector(std::vector<TCHAR*>& vData);
- //获取磁盘容量
- int FindEnableBakDir(IN const BYTE nPhotoType, OUT CString& strTargetDir);
- BOOL GetDiskSpaceInfo(IN LPCTSTR lpRootPathName, IN OUT double &dTotalNum, IN OUT double &dFreeNum);
- //BOOL GetEnableShareDirectory(IN LPCTSTR lpDir, IN BYTE byMaxCapacity, IN BYTE byPriority, OUT double &dFreeNum);
- void ClearShareDir();
-
- private:
- BackupListMgr m_InfoList;
- LPSBAKINFO m_lpCurrBakInfo; //当前添加的备份信息
- std::vector<LPTblNetShareInfo> m_vShareDir; //共享目录
- DWORD m_dwRefCount;
- HANDLE m_hThread; //线程
- HANDLE m_hEvent; //退出事件
- BOOL m_bRunning; //是否正在运行
- TCHAR m_szLocalDomain[64]; //本地域名
- PFCALLBACK m_PFCallBack; //回调
- };
- #endif
|