/src/Modules/FileTransfer/TransferManager.h
https://gitlab.com/yoage/TTWinClient · C Header · 109 lines · 66 code · 12 blank · 31 comment · 0 complexity · 6b16bfec6e5b85291c66ef49865fa1e4 MD5 · raw file
- /*******************************************************************************
- * @file TransferManager.h 2014\9\3 11:19:29 $
- * @author ´ó·ð<dafo@mogujie.com>
- * @brief Îļþ´«Êä¹ÜÀí
- ******************************************************************************/
- #ifndef TRANSFERMANAGER_3046D4C9_3E8D_4C36_93B4_092651F5B66F_H__
- #define TRANSFERMANAGER_3046D4C9_3E8D_4C36_93B4_092651F5B66F_H__
- #include "utility/TTAutoLock.h"
- #include <list>
- #include <map>
- /******************************************************************************/
- class TransferFile;
- class FileTransferUIThread;
- class TransferFileEntity
- {
- public:
- TransferFileEntity();
- public:
- UInt32 nPort;
- UInt32 nFileSize;
- UInt32 nClientMode; //CLIENT_REALTIME_SENDER = 1,CLIENT_REALTIME_RECVER,CLIENT_OFFLINE_UPLOAD,CLIENT_OFFLINE_DOWNLOAD
- UInt32 nProgress; //´«Êä½ø¶È
- TransferFile* pFileObject; //´«ÊäÎļþ
- std::string sFromID;
- std::string sTaskID; //ÎļþΨһ±êʾ·û
- std::string sToID;
- std::string sFileName;
- std::string sIP;
- std::string sPathOfflineFileOnSev; //ÀëÏßÎļþ´«Êäʱ£¬±£´æÔÚÎļþ·þÎñÆ÷ÉϵÄλÖÃ
- UInt32 time; //´«Îļþ·¢Æðʱ¼ä
- private:
- CString sSavePath; //½ÓÊÕʱ£¬Áí´æÎªµÄµØÖ·
- public:
- CString getSaveFilePath(); //ÍêÕûµÄ±£´æÎļþ·¾¶
- CString getSaveFloderFilePath(); //±£´æµÄÎļþ¼ÐλÖÃ
- void setSaveFilePath(const CString& sPath);
- CString getRealFileName();
- };
- typedef std::map<std::string, TransferFileEntity> TransferFileMap;//ȺÁбí
- class TransferFileEntityManager
- {
- public:
- ~TransferFileEntityManager();
- static TransferFileEntityManager* getInstance();
- BOOL pushTransferFileEntity(IN TransferFileEntity& FileInfo);
- BOOL getFileInfoByTaskId(IN const std::string& sID, OUT TransferFileEntity& FileInfo);
- BOOL DeleteFileInfoByTaskId(IN const std::string& sID);
- void getAllTransferFileEntityFileID(std::list<std::string>& fileIdList);
- BOOL updateFileInfoBysTaskID(IN const TransferFileEntity& info);
- BOOL openFileByFileID(IN const std::string& sID);
- BOOL openFileFolderByTaskID(IN const std::string& sID);
- BOOL kickMapFileItemToVecFile(IN std::string& sfId);
- void pushTransferFileEntityToVec(IN TransferFileEntity& FileInfo);
- BOOL checkIfIsSending(IN CString sFilePath);//ÕýÔÚ´«ÊäµÄÎļþ²»ÄÜÔٴδ«Êä
- public:
- /**@name °üº¬¶à¸öfile socket×ÊÔ´µÄÏß³ÌÏà¹Ø*/
- //@{
- BOOL startup();
- void shutdown();
- /**
- * ÔÚUI threadÖÐÒì²½´´½¨Îļþ´«Êäsocket
- *
- * @param std::string & taskId Îļþ´«ÊäÈÎÎñid
- * @return void
- * @exception there is no any exception to throw.
- */
- void openFileSocketByTaskId(std::string& taskId);
- /**
- * ÔÚUI threadÖйرÕÎļþ´«Êäsocket
- *
- * @param std::string & taskId Îļþ´«ÊäÈÎÎñid
- * @return void
- * @exception there is no any exception to throw.
- */
- void closeFileSocketByTaskId(std::string& taskId);
- /**
- * ÏòÎļþ´«Êä·þÎñÆ÷·¢ËͽÓÊÕÎļþÐÅÁî
- *
- * @param std::string & taskId
- * @return BOOL
- * @exception there is no any exception to throw.
- */
- BOOL acceptFileTransfer(const std::string& taskId);//½ÓÊÜÎļþ´«Êä
- BOOL rejectFileTransfer(const std::string& taskId);//¾Ü¾øÎļþ´«Êä
- BOOL cancelFileTransfer(const std::string& taskId);//È¡ÏûÎļþ´«Êä
- FileTransferUIThread* getFileTransferThread();
- //@}
- private:
- TransferFileEntityManager();
- private:
- util::TTFastLock m_lock;
- TransferFileMap m_MapFile;
- std::vector<TransferFileEntity> m_VecFinishedFile; //ÒѾ´«ÊäÍêµÄÎļþ,ÈκβÙ×÷¹ýµÄÎļþ¶¼»á±»ÈÓµ½ÕâÀï
- FileTransferUIThread* m_fileUIThread;
- };
- /******************************************************************************/
- #endif// TRANSFERMANAGER_3046D4C9_3E8D_4C36_93B4_092651F5B66F_H__