Index: src/libchcore/TSubTaskCopyMove.h =================================================================== diff -u -N -rdc1988138aa8e37ce585fed1caa25294781578ac -rfdf4929dc7df1376ed439b7271765f1a4ca31de6 --- src/libchcore/TSubTaskCopyMove.h (.../TSubTaskCopyMove.h) (revision dc1988138aa8e37ce585fed1caa25294781578ac) +++ src/libchcore/TSubTaskCopyMove.h (.../TSubTaskCopyMove.h) (revision fdf4929dc7df1376ed439b7271765f1a4ca31de6) @@ -25,16 +25,20 @@ #include "libchcore.h" #include "TSubTaskBase.h" +#include "DataBuffer.h" BEGIN_CHCORE_NAMESPACE -class TDataBuffer; class TLocalFilesystemFile; typedef boost::shared_ptr TFileInfoPtr; struct CUSTOM_COPY_PARAMS; class TReadBinarySerializer; class TWriteBinarySerializer; +class TDataBufferManager; +class TSimpleDataBuffer; +class TBufferSizes; + namespace details { /////////////////////////////////////////////////////////////////////////// @@ -82,8 +86,8 @@ virtual void GetStatsSnapshot(TSubTaskStatsSnapshot& rStats) const; private: - int GetBufferIndex(const TFileInfoPtr& spFileInfo); - void RecreateBufferIfNeeded(TDataBuffer& rBuffer, bool bInitialCreate); + TBufferSizes::EBufferType GetBufferIndex(const TBufferSizes& rBufferSizes, const TFileInfoPtr& spFileInfo); + bool AdjustBufferIfNeeded(TDataBufferManager& rBuffer, TBufferSizes& rBufferSizes); ESubOperationResult CustomCopyFileFB(CUSTOM_COPY_PARAMS* pData); @@ -96,9 +100,9 @@ ESubOperationResult SetFilePointerFB(TLocalFilesystemFile& file, long long llDistance, const TSmartPath& pathFile, bool& bSkip); ESubOperationResult SetEndOfFileFB(TLocalFilesystemFile& file, const TSmartPath& pathFile, bool& bSkip); - ESubOperationResult ReadFileFB(TLocalFilesystemFile& file, TDataBuffer& rBuffer, DWORD dwToRead, DWORD& rdwBytesRead, const TSmartPath& pathFile, bool& bSkip); - ESubOperationResult WriteFileFB(TLocalFilesystemFile& file, TDataBuffer& rBuffer, DWORD dwToWrite, DWORD& rdwBytesWritten, const TSmartPath& pathFile, bool& bSkip); - ESubOperationResult WriteFileExFB(TLocalFilesystemFile& file, TDataBuffer& rBuffer, DWORD dwToWrite, DWORD& rdwBytesWritten, const TSmartPath& pathFile, bool& bSkip, bool bNoBuffer); + ESubOperationResult ReadFileFB(TLocalFilesystemFile& file, chcore::TSimpleDataBuffer& rBuffer, DWORD dwToRead, DWORD& rdwBytesRead, const TSmartPath& pathFile, bool& bSkip); + ESubOperationResult WriteFileFB(TLocalFilesystemFile& file, chcore::TSimpleDataBuffer& rBuffer, DWORD dwToWrite, DWORD& rdwBytesWritten, const TSmartPath& pathFile, bool& bSkip); + ESubOperationResult WriteFileExFB(TLocalFilesystemFile& file, chcore::TSimpleDataBuffer& rBuffer, DWORD dwToWrite, DWORD& rdwBytesWritten, const TSmartPath& pathFile, bool& bSkip, bool bNoBuffer); ESubOperationResult CreateDirectoryFB(const TSmartPath& pathDirectory); ESubOperationResult CheckForFreeSpaceFB();