| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // 7zUpdate.h
- #ifndef __7Z_UPDATE_H
- #define __7Z_UPDATE_H
- #include "7zIn.h"
- #include "7zOut.h"
- #include "7zCompressionMode.h"
- #include "../IArchive.h"
- namespace NArchive {
- namespace N7z {
- struct CUpdateItem
- {
- bool NewData;
- bool NewProperties;
- int IndexInArchive;
- int IndexInClient;
-
- UInt32 Attributes;
- FILETIME CreationTime;
- FILETIME LastWriteTime;
- FILETIME LastAccessTime;
- UInt64 Size;
- UString Name;
-
- bool IsAnti;
- bool IsDirectory;
- bool IsCreationTimeDefined;
- bool IsLastWriteTimeDefined;
- bool IsLastAccessTimeDefined;
- bool AttributesAreDefined;
- bool HasStream() const
- { return !IsDirectory && !IsAnti && Size != 0; }
- CUpdateItem():
- IsAnti(false),
- AttributesAreDefined(false),
- IsCreationTimeDefined(false),
- IsLastWriteTimeDefined(false),
- IsLastAccessTimeDefined(false)
- {}
- void SetDirectoryStatusFromAttributes()
- { IsDirectory = ((Attributes & FILE_ATTRIBUTE_DIRECTORY) != 0); };
- int GetExtensionPos() const;
- UString GetExtension() const;
- };
- struct CUpdateOptions
- {
- const CCompressionMethodMode *Method;
- const CCompressionMethodMode *HeaderMethod;
- bool UseFilters;
- bool MaxFilter;
- CHeaderOptions HeaderOptions;
- UInt64 NumSolidFiles;
- UInt64 NumSolidBytes;
- bool SolidExtension;
- bool RemoveSfxBlock;
- bool VolumeMode;
- };
- HRESULT Update(
- DECL_EXTERNAL_CODECS_LOC_VARS
- IInStream *inStream,
- const CArchiveDatabaseEx *database,
- const CObjectVector<CUpdateItem> &updateItems,
- ISequentialOutStream *seqOutStream,
- IArchiveUpdateCallback *updateCallback,
- const CUpdateOptions &options);
- }}
- #endif
|