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