misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2.h
changeset 13904 99b265e0d1d0
parent 13903 5f819b90d479
child 13905 b172a5d40eee
--- a/misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2.h	Thu Oct 11 23:43:31 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-// CoderMixer2.h
-
-#ifndef __CODER_MIXER2_H
-#define __CODER_MIXER2_H
-
-#include "../../../Common/MyVector.h"
-#include "../../../Common/Types.h"
-#include "../../../Common/MyCom.h"
-#include "../../ICoder.h"
-
-namespace NCoderMixer {
-
-struct CBindPair
-{
-  UInt32 InIndex;
-  UInt32 OutIndex;
-};
-
-struct CCoderStreamsInfo
-{
-  UInt32 NumInStreams;
-  UInt32 NumOutStreams;
-};
-
-struct CBindInfo
-{
-  CRecordVector<CCoderStreamsInfo> Coders;
-  CRecordVector<CBindPair> BindPairs;
-  CRecordVector<UInt32> InStreams;
-  CRecordVector<UInt32> OutStreams;
-
-  void Clear()
-  {
-    Coders.Clear();
-    BindPairs.Clear();
-    InStreams.Clear();
-    OutStreams.Clear();
-  }
-
-  /*
-  UInt32 GetCoderStartOutStream(UInt32 coderIndex) const
-  {
-    UInt32 numOutStreams = 0;
-    for (UInt32 i = 0; i < coderIndex; i++)
-      numOutStreams += Coders[i].NumOutStreams;
-    return numOutStreams;
-  }
-  */
-
-
-  void GetNumStreams(UInt32 &numInStreams, UInt32 &numOutStreams) const
-  {
-    numInStreams = 0;
-    numOutStreams = 0;
-    for (int i = 0; i < Coders.Size(); i++)
-    {
-      const CCoderStreamsInfo &coderStreamsInfo = Coders[i];
-      numInStreams += coderStreamsInfo.NumInStreams;
-      numOutStreams += coderStreamsInfo.NumOutStreams;
-    }
-  }
-
-  int FindBinderForInStream(UInt32 inStream) const
-  {
-    for (int i = 0; i < BindPairs.Size(); i++)
-      if (BindPairs[i].InIndex == inStream)
-        return i;
-    return -1;
-  }
-  int FindBinderForOutStream(UInt32 outStream) const
-  {
-    for (int i = 0; i < BindPairs.Size(); i++)
-      if (BindPairs[i].OutIndex == outStream)
-        return i;
-    return -1;
-  }
-
-  UInt32 GetCoderInStreamIndex(UInt32 coderIndex) const
-  {
-    UInt32 streamIndex = 0;
-    for (UInt32 i = 0; i < coderIndex; i++)
-      streamIndex += Coders[i].NumInStreams;
-    return streamIndex;
-  }
-
-  UInt32 GetCoderOutStreamIndex(UInt32 coderIndex) const
-  {
-    UInt32 streamIndex = 0;
-    for (UInt32 i = 0; i < coderIndex; i++)
-      streamIndex += Coders[i].NumOutStreams;
-    return streamIndex;
-  }
-
-
-  void FindInStream(UInt32 streamIndex, UInt32 &coderIndex, 
-      UInt32 &coderStreamIndex) const
-  {
-    for (coderIndex = 0; coderIndex < (UInt32)Coders.Size(); coderIndex++)
-    {
-      UInt32 curSize = Coders[coderIndex].NumInStreams;
-      if (streamIndex < curSize)
-      {
-        coderStreamIndex = streamIndex;
-        return;
-      }
-      streamIndex -= curSize;
-    }
-    throw 1;
-  }
-  void FindOutStream(UInt32 streamIndex, UInt32 &coderIndex, 
-      UInt32 &coderStreamIndex) const
-  {
-    for (coderIndex = 0; coderIndex < (UInt32)Coders.Size(); coderIndex++)
-    {
-      UInt32 curSize = Coders[coderIndex].NumOutStreams;
-      if (streamIndex < curSize)
-      {
-        coderStreamIndex = streamIndex;
-        return;
-      }
-      streamIndex -= curSize;
-    }
-    throw 1;
-  }
-};
-
-class CBindReverseConverter
-{
-  UInt32 _numSrcOutStreams;
-  NCoderMixer::CBindInfo _srcBindInfo;
-  CRecordVector<UInt32> _srcInToDestOutMap;
-  CRecordVector<UInt32> _srcOutToDestInMap;
-  CRecordVector<UInt32> _destInToSrcOutMap;
-public:
-  UInt32 NumSrcInStreams;
-  CRecordVector<UInt32> DestOutToSrcInMap;
-
-  CBindReverseConverter(const NCoderMixer::CBindInfo &srcBindInfo);
-  void CreateReverseBindInfo(NCoderMixer::CBindInfo &destBindInfo);
-};
-
-struct CCoderInfo2
-{
-  CMyComPtr<ICompressCoder> Coder;
-  CMyComPtr<ICompressCoder2> Coder2;
-  UInt32 NumInStreams;
-  UInt32 NumOutStreams;
-
-  CRecordVector<UInt64> InSizes;
-  CRecordVector<UInt64> OutSizes;
-  CRecordVector<const UInt64 *> InSizePointers;
-  CRecordVector<const UInt64 *> OutSizePointers;
-
-  CCoderInfo2(UInt32 numInStreams, UInt32 numOutStreams);
-  void SetCoderInfo(const UInt64 **inSizes, const UInt64 **outSizes);
-
-  HRESULT QueryInterface(REFGUID iid, void** pp) const
-  {
-    IUnknown *p = Coder ? (IUnknown *)Coder : (IUnknown *)Coder2;
-    return p->QueryInterface(iid, pp);
-  }
-};
-
-class CCoderMixer2
-{
-public:
-  virtual HRESULT SetBindInfo(const CBindInfo &bindInfo) = 0;
-  virtual void ReInit() = 0;
-  virtual void SetCoderInfo(UInt32 coderIndex, const UInt64 **inSizes, const UInt64 **outSizes) = 0;
-};
-
-}
-#endif
-