| Index: third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/MultiStream.cpp
|
| diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/MultiStream.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/MultiStream.cpp
|
| deleted file mode 100644
|
| index cf7dc050124988ecedf2a15ae1f73168a6710a62..0000000000000000000000000000000000000000
|
| --- a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/MultiStream.cpp
|
| +++ /dev/null
|
| @@ -1,201 +0,0 @@
|
| -// MultiStream.cpp
|
| -
|
| -#include "StdAfx.h"
|
| -
|
| -#include "MultiStream.h"
|
| -
|
| -STDMETHODIMP CMultiStream::Read(void *data, UInt32 size, UInt32 *processedSize)
|
| -{
|
| - if(processedSize != NULL)
|
| - *processedSize = 0;
|
| - while(_streamIndex < Streams.Size() && size > 0)
|
| - {
|
| - CSubStreamInfo &s = Streams[_streamIndex];
|
| - if (_pos == s.Size)
|
| - {
|
| - _streamIndex++;
|
| - _pos = 0;
|
| - continue;
|
| - }
|
| - RINOK(s.Stream->Seek(s.Pos + _pos, STREAM_SEEK_SET, 0));
|
| - UInt32 sizeToRead = UInt32(MyMin((UInt64)size, s.Size - _pos));
|
| - UInt32 realProcessed;
|
| - HRESULT result = s.Stream->Read(data, sizeToRead, &realProcessed);
|
| - data = (void *)((Byte *)data + realProcessed);
|
| - size -= realProcessed;
|
| - if(processedSize != NULL)
|
| - *processedSize += realProcessed;
|
| - _pos += realProcessed;
|
| - _seekPos += realProcessed;
|
| - RINOK(result);
|
| - break;
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -STDMETHODIMP CMultiStream::Seek(Int64 offset, UInt32 seekOrigin,
|
| - UInt64 *newPosition)
|
| -{
|
| - UInt64 newPos;
|
| - switch(seekOrigin)
|
| - {
|
| - case STREAM_SEEK_SET:
|
| - newPos = offset;
|
| - break;
|
| - case STREAM_SEEK_CUR:
|
| - newPos = _seekPos + offset;
|
| - break;
|
| - case STREAM_SEEK_END:
|
| - newPos = _totalLength + offset;
|
| - break;
|
| - default:
|
| - return STG_E_INVALIDFUNCTION;
|
| - }
|
| - _seekPos = 0;
|
| - for (_streamIndex = 0; _streamIndex < Streams.Size(); _streamIndex++)
|
| - {
|
| - UInt64 size = Streams[_streamIndex].Size;
|
| - if (newPos < _seekPos + size)
|
| - {
|
| - _pos = newPos - _seekPos;
|
| - _seekPos += _pos;
|
| - if (newPosition != 0)
|
| - *newPosition = newPos;
|
| - return S_OK;
|
| - }
|
| - _seekPos += size;
|
| - }
|
| - if (newPos == _seekPos)
|
| - {
|
| - if (newPosition != 0)
|
| - *newPosition = newPos;
|
| - return S_OK;
|
| - }
|
| - return E_FAIL;
|
| -}
|
| -
|
| -
|
| -/*
|
| -class COutVolumeStream:
|
| - public ISequentialOutStream,
|
| - public CMyUnknownImp
|
| -{
|
| - int _volIndex;
|
| - UInt64 _volSize;
|
| - UInt64 _curPos;
|
| - CMyComPtr<ISequentialOutStream> _volumeStream;
|
| - COutArchive _archive;
|
| - CCRC _crc;
|
| -
|
| -public:
|
| - MY_UNKNOWN_IMP
|
| -
|
| - CFileItem _file;
|
| - CUpdateOptions _options;
|
| - CMyComPtr<IArchiveUpdateCallback2> VolumeCallback;
|
| - void Init(IArchiveUpdateCallback2 *volumeCallback,
|
| - const UString &name)
|
| - {
|
| - _file.Name = name;
|
| - _file.IsStartPosDefined = true;
|
| - _file.StartPos = 0;
|
| -
|
| - VolumeCallback = volumeCallback;
|
| - _volIndex = 0;
|
| - _volSize = 0;
|
| - }
|
| -
|
| - HRESULT Flush();
|
| - STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize);
|
| -};
|
| -
|
| -HRESULT COutVolumeStream::Flush()
|
| -{
|
| - if (_volumeStream)
|
| - {
|
| - _file.UnPackSize = _curPos;
|
| - _file.FileCRC = _crc.GetDigest();
|
| - RINOK(WriteVolumeHeader(_archive, _file, _options));
|
| - _archive.Close();
|
| - _volumeStream.Release();
|
| - _file.StartPos += _file.UnPackSize;
|
| - }
|
| - return S_OK;
|
| -}
|
| -*/
|
| -
|
| -/*
|
| -STDMETHODIMP COutMultiStream::Write(const void *data, UInt32 size, UInt32 *processedSize)
|
| -{
|
| - if(processedSize != NULL)
|
| - *processedSize = 0;
|
| - while(size > 0)
|
| - {
|
| - if (_streamIndex >= Streams.Size())
|
| - {
|
| - CSubStreamInfo subStream;
|
| - RINOK(VolumeCallback->GetVolumeSize(Streams.Size(), &subStream.Size));
|
| - RINOK(VolumeCallback->GetVolumeStream(Streams.Size(), &subStream.Stream));
|
| - subStream.Pos = 0;
|
| - Streams.Add(subStream);
|
| - continue;
|
| - }
|
| - CSubStreamInfo &subStream = Streams[_streamIndex];
|
| - if (_offsetPos >= subStream.Size)
|
| - {
|
| - _offsetPos -= subStream.Size;
|
| - _streamIndex++;
|
| - continue;
|
| - }
|
| - if (_offsetPos != subStream.Pos)
|
| - {
|
| - CMyComPtr<IOutStream> outStream;
|
| - RINOK(subStream.Stream.QueryInterface(IID_IOutStream, &outStream));
|
| - RINOK(outStream->Seek(_offsetPos, STREAM_SEEK_SET, NULL));
|
| - subStream.Pos = _offsetPos;
|
| - }
|
| -
|
| - UInt32 curSize = (UInt32)MyMin((UInt64)size, subStream.Size - subStream.Pos);
|
| - UInt32 realProcessed;
|
| - RINOK(subStream.Stream->Write(data, curSize, &realProcessed));
|
| - data = (void *)((Byte *)data + realProcessed);
|
| - size -= realProcessed;
|
| - subStream.Pos += realProcessed;
|
| - _offsetPos += realProcessed;
|
| - _absPos += realProcessed;
|
| - if (_absPos > _length)
|
| - _length = _absPos;
|
| - if(processedSize != NULL)
|
| - *processedSize += realProcessed;
|
| - if (subStream.Pos == subStream.Size)
|
| - {
|
| - _streamIndex++;
|
| - _offsetPos = 0;
|
| - }
|
| - if (realProcessed != curSize && realProcessed == 0)
|
| - return E_FAIL;
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -STDMETHODIMP COutMultiStream::Seek(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition)
|
| -{
|
| - if(seekOrigin >= 3)
|
| - return STG_E_INVALIDFUNCTION;
|
| - switch(seekOrigin)
|
| - {
|
| - case STREAM_SEEK_SET:
|
| - _absPos = offset;
|
| - break;
|
| - case STREAM_SEEK_CUR:
|
| - _absPos += offset;
|
| - break;
|
| - case STREAM_SEEK_END:
|
| - _absPos = _length + offset;
|
| - break;
|
| - }
|
| - _offsetPos = _absPos;
|
| - _streamIndex = 0;
|
| - return S_OK;
|
| -}
|
| -*/
|
|
|