1*f6dc9357SAndroid Build Coastguard Worker // TarUpdate.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_TAR_UPDATE_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_TAR_UPDATE_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../IArchive.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #include "TarItem.h" 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker namespace NArchive { 11*f6dc9357SAndroid Build Coastguard Worker namespace NTar { 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker struct CUpdateItem 14*f6dc9357SAndroid Build Coastguard Worker { 15*f6dc9357SAndroid Build Coastguard Worker int IndexInArc; 16*f6dc9357SAndroid Build Coastguard Worker unsigned IndexInClient; 17*f6dc9357SAndroid Build Coastguard Worker UInt64 Size; 18*f6dc9357SAndroid Build Coastguard Worker // Int64 MTime; 19*f6dc9357SAndroid Build Coastguard Worker UInt32 Mode; 20*f6dc9357SAndroid Build Coastguard Worker bool NewData; 21*f6dc9357SAndroid Build Coastguard Worker bool NewProps; 22*f6dc9357SAndroid Build Coastguard Worker bool IsDir; 23*f6dc9357SAndroid Build Coastguard Worker bool DeviceMajor_Defined; 24*f6dc9357SAndroid Build Coastguard Worker bool DeviceMinor_Defined; 25*f6dc9357SAndroid Build Coastguard Worker UInt32 UID; 26*f6dc9357SAndroid Build Coastguard Worker UInt32 GID; 27*f6dc9357SAndroid Build Coastguard Worker UInt32 DeviceMajor; 28*f6dc9357SAndroid Build Coastguard Worker UInt32 DeviceMinor; 29*f6dc9357SAndroid Build Coastguard Worker AString Name; 30*f6dc9357SAndroid Build Coastguard Worker AString User; 31*f6dc9357SAndroid Build Coastguard Worker AString Group; 32*f6dc9357SAndroid Build Coastguard Worker 33*f6dc9357SAndroid Build Coastguard Worker CPaxTimes PaxTimes; 34*f6dc9357SAndroid Build Coastguard Worker CUpdateItemCUpdateItem35*f6dc9357SAndroid Build Coastguard Worker CUpdateItem(): 36*f6dc9357SAndroid Build Coastguard Worker Size(0), 37*f6dc9357SAndroid Build Coastguard Worker IsDir(false), 38*f6dc9357SAndroid Build Coastguard Worker DeviceMajor_Defined(false), 39*f6dc9357SAndroid Build Coastguard Worker DeviceMinor_Defined(false), 40*f6dc9357SAndroid Build Coastguard Worker UID(0), 41*f6dc9357SAndroid Build Coastguard Worker GID(0) 42*f6dc9357SAndroid Build Coastguard Worker {} 43*f6dc9357SAndroid Build Coastguard Worker }; 44*f6dc9357SAndroid Build Coastguard Worker 45*f6dc9357SAndroid Build Coastguard Worker 46*f6dc9357SAndroid Build Coastguard Worker struct CUpdateOptions 47*f6dc9357SAndroid Build Coastguard Worker { 48*f6dc9357SAndroid Build Coastguard Worker UINT CodePage; 49*f6dc9357SAndroid Build Coastguard Worker unsigned UtfFlags; 50*f6dc9357SAndroid Build Coastguard Worker bool PosixMode; 51*f6dc9357SAndroid Build Coastguard Worker CBoolPair Write_MTime; 52*f6dc9357SAndroid Build Coastguard Worker CBoolPair Write_ATime; 53*f6dc9357SAndroid Build Coastguard Worker CBoolPair Write_CTime; 54*f6dc9357SAndroid Build Coastguard Worker CTimeOptions TimeOptions; 55*f6dc9357SAndroid Build Coastguard Worker }; 56*f6dc9357SAndroid Build Coastguard Worker 57*f6dc9357SAndroid Build Coastguard Worker 58*f6dc9357SAndroid Build Coastguard Worker HRESULT UpdateArchive(IInStream *inStream, ISequentialOutStream *outStream, 59*f6dc9357SAndroid Build Coastguard Worker const CObjectVector<CItemEx> &inputItems, 60*f6dc9357SAndroid Build Coastguard Worker const CObjectVector<CUpdateItem> &updateItems, 61*f6dc9357SAndroid Build Coastguard Worker const CUpdateOptions &options, 62*f6dc9357SAndroid Build Coastguard Worker IArchiveUpdateCallback *updateCallback); 63*f6dc9357SAndroid Build Coastguard Worker 64*f6dc9357SAndroid Build Coastguard Worker HRESULT GetPropString(IArchiveUpdateCallback *callback, UInt32 index, PROPID propId, AString &res, 65*f6dc9357SAndroid Build Coastguard Worker UINT codePage, unsigned utfFlags, bool convertSlash); 66*f6dc9357SAndroid Build Coastguard Worker 67*f6dc9357SAndroid Build Coastguard Worker HRESULT Prop_To_PaxTime(const NWindows::NCOM::CPropVariant &prop, CPaxTime &pt); 68*f6dc9357SAndroid Build Coastguard Worker 69*f6dc9357SAndroid Build Coastguard Worker void Get_AString_From_UString(const UString &s, AString &res, 70*f6dc9357SAndroid Build Coastguard Worker UINT codePage, unsigned utfFlags); 71*f6dc9357SAndroid Build Coastguard Worker 72*f6dc9357SAndroid Build Coastguard Worker }} 73*f6dc9357SAndroid Build Coastguard Worker 74*f6dc9357SAndroid Build Coastguard Worker #endif 75