Source code

Revision control

Copy as Markdown

Other Tools

// 7zUpdate.h↩
#ifndef __7Z_UPDATE_H↩
#define __7Z_UPDATE_H↩
#include "../IArchive.h"
// #include "../../Common/UniqBlocks.h"↩
#include "7zCompressionMode.h"
#include "7zIn.h"
#include "7zOut.h"
namespace NArchive {↩
namespace N7z {↩
/*↩
struct CTreeFolder↩
{↩
UString Name;↩
int Parent;↩
CIntVector SubFolders;↩
int UpdateItemIndex;↩
int SortIndex;↩
int SortIndexEnd;↩
CTreeFolder(): UpdateItemIndex(-1) {}↩
};↩
*/
struct CUpdateItem↩
{↩
int IndexInArchive;↩
int IndexInClient;↩
UInt64 CTime;↩
UInt64 ATime;↩
UInt64 MTime;↩
UInt64 Size;↩
UString Name;↩
/*↩
bool IsAltStream;↩
int ParentFolderIndex;↩
int TreeFolderIndex;↩
*/
// that code is not used in 9.26↩
// int ParentSortIndex;↩
// int ParentSortIndexEnd;↩
UInt32 Attrib;↩
bool NewData;↩
bool NewProps;↩
bool IsAnti;↩
bool IsDir;↩
bool AttribDefined;↩
bool CTimeDefined;↩
bool ATimeDefined;↩
bool MTimeDefined;↩
// int SecureIndex; // 0 means (no_security)↩
bool HasStream() const { return !IsDir && !IsAnti && Size != 0; }↩
// bool HasStream() const { return !IsDir && !IsAnti /* && Size != 0 */; } // for test purposes↩
CUpdateItem():↩
// ParentSortIndex(-1),↩
// IsAltStream(false),↩
IsAnti(false),↩
IsDir(false),↩
AttribDefined(false),↩
CTimeDefined(false),↩
ATimeDefined(false),↩
MTimeDefined(false)↩
// SecureIndex(0)↩
{}↩
void SetDirStatusFromAttrib() { IsDir = ((Attrib & FILE_ATTRIBUTE_DIRECTORY) != 0); }↩
// unsigned GetExtensionPos() const;↩
// UString GetExtension() const;↩
};↩
struct CUpdateOptions↩
{↩
const CCompressionMethodMode *Method;↩
const CCompressionMethodMode *HeaderMethod;↩
bool UseFilters; // use additional filters for some files↩
bool MaxFilter; // use BCJ2 filter instead of BCJ↩
int AnalysisLevel;↩
CHeaderOptions HeaderOptions;↩
UInt64 NumSolidFiles;↩
UInt64 NumSolidBytes;↩
bool SolidExtension;↩
bool UseTypeSorting;↩
bool RemoveSfxBlock;↩
bool MultiThreadMixer;↩
CUpdateOptions():↩
Method(NULL),↩
HeaderMethod(NULL),↩
UseFilters(false),↩
MaxFilter(false),↩
AnalysisLevel(-1),↩
NumSolidFiles((UInt64)(Int64)(-1)),↩
NumSolidBytes((UInt64)(Int64)(-1)),↩
SolidExtension(false),↩
UseTypeSorting(true),↩
RemoveSfxBlock(false),↩
MultiThreadMixer(true)↩
{}↩
};↩
HRESULT Update(↩
DECL_EXTERNAL_CODECS_LOC_VARS↩
IInStream *inStream,↩
const CDbEx *db,↩
const CObjectVector<CUpdateItem> &updateItems,↩
// const CObjectVector<CTreeFolder> &treeFolders, // treeFolders[0] is root↩
// const CUniqBlocks &secureBlocks,↩
COutArchive &archive,↩
CArchiveDatabaseOut &newDatabase,↩
ISequentialOutStream *seqOutStream,↩
IArchiveUpdateCallback *updateCallback,↩
const CUpdateOptions &options↩
#ifndef _NO_CRYPTO↩
, ICryptoGetTextPassword *getDecoderPassword↩
#endif
);↩
}}↩
#endif