Index: src/ch/FeedbackHandler.h =================================================================== diff -u -r22bbc4a87fa0b249e1e02ba385f28da9d77a4aa1 -r4fe995b304ea342b50293f92d3c1992b43b820f7 --- src/ch/FeedbackHandler.h (.../FeedbackHandler.h) (revision 22bbc4a87fa0b249e1e02ba385f28da9d77a4aa1) +++ src/ch/FeedbackHandler.h (.../FeedbackHandler.h) (revision 4fe995b304ea342b50293f92d3c1992b43b820f7) @@ -19,81 +19,26 @@ #ifndef __FEEDBACKHANDLER_H__ #define __FEEDBACKHANDLER_H__ -#include "../libchcore/FeedbackHandlerBase.h" +#include "../libchcore/TFeedbackHandlerBase.h" +#include "../libchcore/EFileError.h" +#include "../libchcore/TFeedbackResult.h" -struct FEEDBACK_ALREADYEXISTS +class CFeedbackHandler : public chcore::TFeedbackHandlerBase { - CFileInfoPtr spSrcFileInfo; - CFileInfoPtr spDstFileInfo; -}; - -struct FEEDBACK_FILEERROR -{ - const tchar_t* pszSrcPath; - const tchar_t* pszDstPath; - EFileError eFileError; // error type - ulong_t ulError; // system error -}; - -struct FEEDBACK_NOTENOUGHSPACE -{ - ull_t ullRequiredSize; - const tchar_t* pszSrcPath; - const tchar_t* pszDstPath; -}; - -class CFeedbackHandler : public chcore::IFeedbackHandler -{ public: - enum EFeedbackType - { - eFT_Unknown = 0, - // requests for use feedback - eFT_FileAlreadyExists, - eFT_FileError, - eFT_NotEnoughSpace, - // notifications - eFT_OperationFinished, ///< Task has finished processing - eFT_OperationError, ///< Error encountered while processing task - eFT_LastType - }; - - enum EFeedbackResult - { - eResult_Unknown = 0, - eResult_Overwrite, - eResult_CopyRest, - eResult_Skip, - eResult_Cancel, - eResult_Pause, - eResult_Retry - }; - -protected: CFeedbackHandler(); - ~CFeedbackHandler(); + virtual ~CFeedbackHandler(); -public: - virtual ull_t RequestFeedback(ull_t ullFeedbackID, ptr_t pFeedbackParam); - virtual void Delete(); + virtual chcore::TFeedbackResult FileError(const chcore::TString& strSrcPath, const chcore::TString& strDstPath, chcore::EFileError eFileError, unsigned long ulError) override; + virtual chcore::TFeedbackResult FileAlreadyExists(const chcore::TFileInfo& spSrcFileInfo, const chcore::TFileInfo& spDstFileInfo) override; + virtual chcore::TFeedbackResult NotEnoughSpace(const chcore::TString& strSrcPath, const chcore::TString& strDstPath, unsigned long long ullRequiredSize) override; + virtual chcore::TFeedbackResult OperationFinished() override; + virtual chcore::TFeedbackResult OperationError() override; protected: - EFeedbackResult m_aeFeedbackTypeStatus[eFT_LastType]; - friend class CFeedbackHandlerFactory; }; -class CFeedbackHandlerFactory : public chcore::IFeedbackHandlerFactory -{ -protected: - CFeedbackHandlerFactory() {} - ~CFeedbackHandlerFactory() {} +typedef std::shared_ptr CFeedbackHandlerPtr; -public: - chcore::IFeedbackHandler* Create(); - virtual void Delete(); - - static IFeedbackHandlerFactory* CreateFactory(); -}; - #endif