xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/Tar/TarHandler.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // TarHandler.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_TAR_HANDLER_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_TAR_HANDLER_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyCom.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../../Compress/CopyCoder.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "../Common/HandlerOut.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker #include "TarIn.h"
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker namespace NArchive {
15*f6dc9357SAndroid Build Coastguard Worker namespace NTar {
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker Z7_CLASS_IMP_CHandler_IInArchive_4(
18*f6dc9357SAndroid Build Coastguard Worker     IArchiveOpenSeq
19*f6dc9357SAndroid Build Coastguard Worker   , IInArchiveGetStream
20*f6dc9357SAndroid Build Coastguard Worker   , ISetProperties
21*f6dc9357SAndroid Build Coastguard Worker   , IOutArchive
22*f6dc9357SAndroid Build Coastguard Worker )
23*f6dc9357SAndroid Build Coastguard Worker public:
24*f6dc9357SAndroid Build Coastguard Worker   CObjectVector<CItemEx> _items;
25*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<IInStream> _stream;
26*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ISequentialInStream> _seqStream;
27*f6dc9357SAndroid Build Coastguard Worker private:
28*f6dc9357SAndroid Build Coastguard Worker   bool _isArc;
29*f6dc9357SAndroid Build Coastguard Worker   bool _posixMode_WasForced;
30*f6dc9357SAndroid Build Coastguard Worker   bool _posixMode;
31*f6dc9357SAndroid Build Coastguard Worker   bool _forceCodePage;
32*f6dc9357SAndroid Build Coastguard Worker   UInt32 _specifiedCodePage;
33*f6dc9357SAndroid Build Coastguard Worker   UInt32 _curCodePage;
34*f6dc9357SAndroid Build Coastguard Worker   UInt32 _openCodePage;
35*f6dc9357SAndroid Build Coastguard Worker   // CTimeOptions TimeOptions;
36*f6dc9357SAndroid Build Coastguard Worker   CHandlerTimeOptions _handlerTimeOptions;
37*f6dc9357SAndroid Build Coastguard Worker   CEncodingCharacts _encodingCharacts;
38*f6dc9357SAndroid Build Coastguard Worker 
39*f6dc9357SAndroid Build Coastguard Worker   UInt32 _curIndex;
40*f6dc9357SAndroid Build Coastguard Worker   bool _latestIsRead;
41*f6dc9357SAndroid Build Coastguard Worker   CItemEx _latestItem;
42*f6dc9357SAndroid Build Coastguard Worker 
43*f6dc9357SAndroid Build Coastguard Worker   CArchive _arc;
44*f6dc9357SAndroid Build Coastguard Worker 
45*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr2_Create<ICompressCoder, NCompress::CCopyCoder> copyCoder;
46*f6dc9357SAndroid Build Coastguard Worker 
47*f6dc9357SAndroid Build Coastguard Worker   HRESULT Open2(IInStream *stream, IArchiveOpenCallback *callback);
48*f6dc9357SAndroid Build Coastguard Worker   HRESULT SkipTo(UInt32 index);
49*f6dc9357SAndroid Build Coastguard Worker   void TarStringToUnicode(const AString &s, NWindows::NCOM::CPropVariant &prop, bool toOs = false) const;
50*f6dc9357SAndroid Build Coastguard Worker public:
51*f6dc9357SAndroid Build Coastguard Worker   void Init();
52*f6dc9357SAndroid Build Coastguard Worker   CHandler();
53*f6dc9357SAndroid Build Coastguard Worker };
54*f6dc9357SAndroid Build Coastguard Worker 
55*f6dc9357SAndroid Build Coastguard Worker }}
56*f6dc9357SAndroid Build Coastguard Worker 
57*f6dc9357SAndroid Build Coastguard Worker #endif
58