Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Common/InOutTempBuffer.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line source
1 // Util/InOutTempBuffer.h3 #ifndef __IN_OUT_TEMP_BUFFER_H4 #define __IN_OUT_TEMP_BUFFER_H6 #include "../../Windows/FileIO.h"7 #include "../../Windows/FileDir.h"8 #include "../../Common/MyCom.h"10 #include "../IStream.h"12 class CInOutTempBuffer13 {14 NWindows::NFile::NDirectory::CTempFile _tempFile;15 NWindows::NFile::NIO::COutFile _outFile;16 NWindows::NFile::NIO::CInFile _inFile;17 Byte *_buffer;18 UInt32 _bufferPosition;19 UInt32 _currentPositionInBuffer;20 CSysString _tmpFileName;21 bool _tmpFileCreated;23 UInt64 _fileSize;25 bool WriteToFile(const void *data, UInt32 size);26 public:27 CInOutTempBuffer();28 ~CInOutTempBuffer();29 void Create();31 void InitWriting();32 bool Write(const void *data, UInt32 size);33 UInt64 GetDataSize() const { return _fileSize; }34 bool FlushWrite();35 bool InitReading();36 HRESULT WriteToStream(ISequentialOutStream *stream);37 };39 class CSequentialOutTempBufferImp:40 public ISequentialOutStream,41 public CMyUnknownImp42 {43 CInOutTempBuffer *_buffer;44 public:45 // CSequentialOutStreamImp(): _size(0) {}46 // UInt32 _size;47 void Init(CInOutTempBuffer *buffer) { _buffer = buffer; }48 // UInt32 GetSize() const { return _size; }50 MY_UNKNOWN_IMP52 STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize);53 };55 #endif