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