xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/7z/7zSpecStream.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // 7zSpecStream.h
2 
3 #ifndef ZIP7_INC_7Z_SPEC_STREAM_H
4 #define ZIP7_INC_7Z_SPEC_STREAM_H
5 
6 #include "../../../Common/MyCom.h"
7 
8 #include "../../ICoder.h"
9 
10 /*
11 #define Z7_COM_QI_ENTRY_AG_2(i, sub0, sub) else if (iid == IID_ ## i) \
12   { if (!sub) RINOK(sub0->QueryInterface(IID_ ## i, (void **)&sub)) \
13     { i *ti = this;  *outObject = ti; }  }
14 
15 class CSequentialInStreamSizeCount2 Z7_final:
16   public ISequentialInStream,
17   public ICompressGetSubStreamSize,
18   public ICompressInSubStreams,
19   public CMyUnknownImp
20 {
21   Z7_COM_QI_BEGIN2(ISequentialInStream)
22     Z7_COM_QI_ENTRY(ICompressGetSubStreamSize)
23     Z7_COM_QI_ENTRY_AG_2(ISequentialInStream, _stream, _compressGetSubStreamSize)
24   Z7_COM_QI_END
25   Z7_COM_ADDREF_RELEASE
26 
27   Z7_IFACE_COM7_IMP(ISequentialInStream)
28   Z7_IFACE_COM7_IMP(ICompressGetSubStreamSize)
29   Z7_IFACE_COM7_IMP(ICompressInSubStreams)
30 
31   CMyComPtr<ISequentialInStream> _stream;
32   CMyComPtr<ICompressGetSubStreamSize> _getSubStreamSize;
33   CMyComPtr<ICompressInSubStreams> _compressGetSubStreamSize;
34   UInt64 _size;
35 public:
36   void Init(ISequentialInStream *stream)
37   {
38     _size = 0;
39     _getSubStreamSize.Release();
40     _compressGetSubStreamSize.Release();
41     _stream = stream;
42     _stream.QueryInterface(IID_ICompressGetSubStreamSize, &_getSubStreamSize);
43     _stream.QueryInterface(IID_ICompressInSubStreams, &_compressGetSubStreamSize);
44   }
45   UInt64 GetSize() const { return _size; }
46 };
47 */
48 
49 #endif
50