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;
134 cDefaultBufferSize = 2 * 65536
139 m_iBufferSize = cDefaultBufferSize;
148 virtual int GetType()
const = 0;
156 virtual COptions* Clone()
const = 0;
183 void Remove(
int iType);
197 static bool IsCompressionSupported(WORD uCompressionMethod)
199 return uCompressionMethod == methodStore || uCompressionMethod == methodDeflate
217 virtual bool CanProcess(WORD uMethod) = 0;
242 m_pCryptograph = pCryptograph;
263 m_pCryptograph = pCryptograph;
265 m_uComprLeft = m_pFile->GetDataSize(
true);
266 m_uUncomprLeft = m_pFile->m_uUncomprSize;
284 virtual void Compress(
const void *pBuffer, DWORD uSize) = 0;
306 virtual DWORD Decompress(
void *pBuffer, DWORD uSize) = 0;
364 void UpdateOptions(
const COptionsMap& optionsMap);
390 virtual void UpdateOptions(
const COptions* pOptions)
402 void UpdateFileCrc(
const void *pBuffer, DWORD uSize);
413 void UpdateCrc(
const void *pBuffer, DWORD uSize);
419 void FlushWriteBuffer()
421 WriteBuffer(m_pBuffer, (DWORD)m_uComprLeft);
434 void WriteBuffer(
char* pBuffer, DWORD uSize)
439 m_pCryptograph->Encode(pBuffer, uSize);
440 m_pStorage->Write(pBuffer, uSize,
false);
451 DWORD uToRead = m_pBuffer.GetSize();
452 if (m_uComprLeft < uToRead)
453 uToRead = (DWORD)m_uComprLeft;
457 m_pStorage->Read(m_pBuffer, uToRead,
false);
459 m_pCryptograph->Decode(m_pBuffer, uToRead);
460 m_uComprLeft -= uToRead;
493 virtual int ConvertInternalError(
int iErr)
const
511 void ThrowError(
int iErr,
bool bInternal =
false)
514 iErr = ConvertInternalError(iErr);
515 CZipException::Throw(iErr, m_pStorage->IsClosed(
true) ? _T(
"") : (LPCTSTR)m_pStorage->m_pFile->GetFilePath());
520 #pragma warning( pop )