1*f6dc9357SAndroid Build Coastguard Worker // InOutTempBuffer.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_IN_OUT_TEMP_BUFFER_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_IN_OUT_TEMP_BUFFER_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker // #ifdef _WIN32 7*f6dc9357SAndroid Build Coastguard Worker #define USE_InOutTempBuffer_FILE 8*f6dc9357SAndroid Build Coastguard Worker // #endif 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_InOutTempBuffer_FILE 11*f6dc9357SAndroid Build Coastguard Worker #include "../../Windows/FileDir.h" 12*f6dc9357SAndroid Build Coastguard Worker #endif 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker #include "../IStream.h" 15*f6dc9357SAndroid Build Coastguard Worker 16*f6dc9357SAndroid Build Coastguard Worker class CInOutTempBuffer 17*f6dc9357SAndroid Build Coastguard Worker { 18*f6dc9357SAndroid Build Coastguard Worker UInt64 _size; 19*f6dc9357SAndroid Build Coastguard Worker void **_bufs; 20*f6dc9357SAndroid Build Coastguard Worker size_t _numBufs; 21*f6dc9357SAndroid Build Coastguard Worker size_t _numFilled; 22*f6dc9357SAndroid Build Coastguard Worker 23*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_InOutTempBuffer_FILE 24*f6dc9357SAndroid Build Coastguard Worker 25*f6dc9357SAndroid Build Coastguard Worker bool _tempFile_Created; 26*f6dc9357SAndroid Build Coastguard Worker bool _useMemOnly; 27*f6dc9357SAndroid Build Coastguard Worker UInt32 _crc; 28*f6dc9357SAndroid Build Coastguard Worker // COutFile object must be declared after CTempFile object for correct destructor order 29*f6dc9357SAndroid Build Coastguard Worker NWindows::NFile::NDir::CTempFile _tempFile; 30*f6dc9357SAndroid Build Coastguard Worker NWindows::NFile::NIO::COutFile _outFile; 31*f6dc9357SAndroid Build Coastguard Worker 32*f6dc9357SAndroid Build Coastguard Worker #endif 33*f6dc9357SAndroid Build Coastguard Worker 34*f6dc9357SAndroid Build Coastguard Worker void *GetBuf(size_t index); 35*f6dc9357SAndroid Build Coastguard Worker 36*f6dc9357SAndroid Build Coastguard Worker Z7_CLASS_NO_COPY(CInOutTempBuffer) 37*f6dc9357SAndroid Build Coastguard Worker public: 38*f6dc9357SAndroid Build Coastguard Worker CInOutTempBuffer(); 39*f6dc9357SAndroid Build Coastguard Worker ~CInOutTempBuffer(); 40*f6dc9357SAndroid Build Coastguard Worker HRESULT Write_HRESULT(const void *data, UInt32 size); 41*f6dc9357SAndroid Build Coastguard Worker HRESULT WriteToStream(ISequentialOutStream *stream); GetDataSize()42*f6dc9357SAndroid Build Coastguard Worker UInt64 GetDataSize() const { return _size; } 43*f6dc9357SAndroid Build Coastguard Worker }; 44*f6dc9357SAndroid Build Coastguard Worker 45*f6dc9357SAndroid Build Coastguard Worker #endif 46