21 #if !defined(ZIPARCHIVE_ZIPCOMPRESSOR_DOT_H)
22 #define ZIPARCHIVE_ZIPCOMPRESSOR_DOT_H
26 #pragma warning( push )
27 #pragma warning (disable: 4100) // unreferenced formal parameter
28 #pragma warning (disable: 4275) // non dll-interface class 'CObject' used as base for dll-interface class 'CMap<KEY,ARG_KEY,VALUE,ARG_VALUE>'
31 #include "ZipExport.h"
32 #include "ZipAutoBuffer.h"
59 m_pCryptograph = NULL;
133 cDefaultBufferSize = 2 * 65536
138 m_iBufferSize = cDefaultBufferSize;
147 virtual int GetType()
const = 0;
155 virtual COptions* Clone()
const = 0;
182 void Remove(
int iType);
196 static bool IsCompressionSupported(WORD uCompressionMethod)
198 return uCompressionMethod == methodStore || uCompressionMethod == methodDeflate
216 virtual bool CanProcess(WORD uMethod) = 0;
241 m_pCryptograph = pCryptograph;
262 m_pCryptograph = pCryptograph;
264 m_uComprLeft = m_pFile->GetDataSize(
true);
265 m_uUncomprLeft = m_pFile->m_uUncomprSize;
283 virtual void Compress(
const void *pBuffer, DWORD uSize) = 0;
305 virtual DWORD Decompress(
void *pBuffer, DWORD uSize) = 0;
363 void UpdateOptions(
const COptionsMap& optionsMap);
389 virtual void UpdateOptions(
const COptions* pOptions)
401 void UpdateFileCrc(
const void *pBuffer, DWORD uSize);
412 void UpdateCrc(
const void *pBuffer, DWORD uSize);
418 void FlushWriteBuffer()
420 WriteBuffer(m_pBuffer, (DWORD)m_uComprLeft);
433 void WriteBuffer(
char* pBuffer, DWORD uSize)
438 m_pCryptograph->Encode(pBuffer, uSize);
439 m_pStorage->Write(pBuffer, uSize,
false);
450 DWORD uToRead = m_pBuffer.GetSize();
451 if (m_uComprLeft < uToRead)
452 uToRead = (DWORD)m_uComprLeft;
456 m_pStorage->Read(m_pBuffer, uToRead,
false);
458 m_pCryptograph->Decode(m_pBuffer, uToRead);
459 m_uComprLeft -= uToRead;
492 virtual int ConvertInternalError(
int iErr)
const
510 void ThrowError(
int iErr,
bool bInternal =
false)
513 iErr = ConvertInternalError(iErr);
514 CZipException::Throw(iErr, m_pStorage->IsClosed(
true) ? _T(
"") : (LPCTSTR)m_pStorage->m_pFile->GetFilePath());
519 #pragma warning( pop )