| OLD | NEW |
| (Empty) |
| 1 // StreamObjects.cpp | |
| 2 | |
| 3 #include "StdAfx.h" | |
| 4 | |
| 5 #include "StreamObjects.h" | |
| 6 #include "../../Common/Defs.h" | |
| 7 | |
| 8 | |
| 9 STDMETHODIMP CSequentialInStreamImp::Read(void *data, UInt32 size, UInt32 *proce
ssedSize) | |
| 10 { | |
| 11 size_t rem = _size - _pos; | |
| 12 if (size < rem) | |
| 13 rem = (size_t)size; | |
| 14 memcpy(data, _dataPointer + _pos, rem); | |
| 15 _pos += rem; | |
| 16 if (processedSize != NULL) | |
| 17 *processedSize = (UInt32)rem; | |
| 18 return S_OK; | |
| 19 } | |
| 20 | |
| 21 | |
| 22 void CWriteBuffer::Write(const void *data, size_t size) | |
| 23 { | |
| 24 size_t newCapacity = _size + size; | |
| 25 _buffer.EnsureCapacity(newCapacity); | |
| 26 memcpy(_buffer + _size, data, size); | |
| 27 _size += size; | |
| 28 } | |
| 29 | |
| 30 STDMETHODIMP CSequentialOutStreamImp::Write(const void *data, UInt32 size, UInt3
2 *processedSize) | |
| 31 { | |
| 32 _writeBuffer.Write(data, (size_t)size); | |
| 33 if(processedSize != NULL) | |
| 34 *processedSize = size; | |
| 35 return S_OK; | |
| 36 } | |
| 37 | |
| 38 STDMETHODIMP CSequentialOutStreamImp2::Write(const void *data, UInt32 size, UInt
32 *processedSize) | |
| 39 { | |
| 40 size_t rem = _size - _pos; | |
| 41 if (size < rem) | |
| 42 rem = (size_t)size; | |
| 43 memcpy(_buffer + _pos, data, rem); | |
| 44 _pos += rem; | |
| 45 if (processedSize != NULL) | |
| 46 *processedSize = (UInt32)rem; | |
| 47 return (rem == size ? S_OK : E_FAIL); | |
| 48 } | |
| 49 | |
| 50 STDMETHODIMP CSequentialInStreamSizeCount::Read(void *data, UInt32 size, UInt32
*processedSize) | |
| 51 { | |
| 52 UInt32 realProcessedSize; | |
| 53 HRESULT result = _stream->Read(data, size, &realProcessedSize); | |
| 54 _size += realProcessedSize; | |
| 55 if (processedSize != 0) | |
| 56 *processedSize = realProcessedSize; | |
| 57 return result; | |
| 58 } | |
| 59 | |
| 60 STDMETHODIMP CSequentialOutStreamSizeCount::Write(const void *data, UInt32 size,
UInt32 *processedSize) | |
| 61 { | |
| 62 UInt32 realProcessedSize; | |
| 63 HRESULT result = _stream->Write(data, size, &realProcessedSize); | |
| 64 _size += realProcessedSize; | |
| 65 if (processedSize != 0) | |
| 66 *processedSize = realProcessedSize; | |
| 67 return result; | |
| 68 } | |
| OLD | NEW |