xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/Tar/TarOut.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Archive/TarOut.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_ARCHIVE_TAR_OUT_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_ARCHIVE_TAR_OUT_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 "../../IStream.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "TarItem.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker namespace NArchive {
13*f6dc9357SAndroid Build Coastguard Worker namespace NTar {
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker class COutArchive
16*f6dc9357SAndroid Build Coastguard Worker {
17*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ISequentialOutStream> Stream;
18*f6dc9357SAndroid Build Coastguard Worker 
19*f6dc9357SAndroid Build Coastguard Worker   AString Glob_Name;
20*f6dc9357SAndroid Build Coastguard Worker   AString Prefix;
21*f6dc9357SAndroid Build Coastguard Worker 
22*f6dc9357SAndroid Build Coastguard Worker   HRESULT WriteHeaderReal(const CItem &item, bool isPax = false
23*f6dc9357SAndroid Build Coastguard Worker       // , bool zero_PackSize = false
24*f6dc9357SAndroid Build Coastguard Worker       // , bool zero_MTime = false
25*f6dc9357SAndroid Build Coastguard Worker       );
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker   HRESULT Write_Data(const void *data, unsigned size);
28*f6dc9357SAndroid Build Coastguard Worker   HRESULT Write_Data_And_Residual(const void *data, unsigned size);
29*f6dc9357SAndroid Build Coastguard Worker 
30*f6dc9357SAndroid Build Coastguard Worker public:
31*f6dc9357SAndroid Build Coastguard Worker   UInt64 Pos;
32*f6dc9357SAndroid Build Coastguard Worker   bool IsPosixMode;
33*f6dc9357SAndroid Build Coastguard Worker   // bool IsPrefixAllowed; // it's used only if (IsPosixMode == true)
34*f6dc9357SAndroid Build Coastguard Worker   CTimeOptions TimeOptions;
35*f6dc9357SAndroid Build Coastguard Worker 
Create(ISequentialOutStream * outStream)36*f6dc9357SAndroid Build Coastguard Worker   void Create(ISequentialOutStream *outStream)
37*f6dc9357SAndroid Build Coastguard Worker   {
38*f6dc9357SAndroid Build Coastguard Worker     Stream = outStream;
39*f6dc9357SAndroid Build Coastguard Worker   }
40*f6dc9357SAndroid Build Coastguard Worker   HRESULT WriteHeader(const CItem &item);
41*f6dc9357SAndroid Build Coastguard Worker   HRESULT Write_AfterDataResidual(UInt64 dataSize);
42*f6dc9357SAndroid Build Coastguard Worker   HRESULT WriteFinishHeader();
43*f6dc9357SAndroid Build Coastguard Worker 
COutArchive()44*f6dc9357SAndroid Build Coastguard Worker   COutArchive():
45*f6dc9357SAndroid Build Coastguard Worker       Pos(0),
46*f6dc9357SAndroid Build Coastguard Worker       IsPosixMode(false)
47*f6dc9357SAndroid Build Coastguard Worker       // , IsPrefixAllowed(true)
48*f6dc9357SAndroid Build Coastguard Worker       {}
49*f6dc9357SAndroid Build Coastguard Worker };
50*f6dc9357SAndroid Build Coastguard Worker 
51*f6dc9357SAndroid Build Coastguard Worker }}
52*f6dc9357SAndroid Build Coastguard Worker 
53*f6dc9357SAndroid Build Coastguard Worker #endif
54