MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / Archive

Class Archive

Libraries/unrar/archive.hpp:26–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24#define MAX_HEADER_SIZE_RAR5 0x200000
25
26class Archive:public File
27{
28 private:
29 void UpdateLatestTime(FileHeader *CurBlock);
30 void ConvertNameCase(wchar *Name);
31 void ConvertFileHeader(FileHeader *hd);
32 size_t ReadHeader14();
33 size_t ReadHeader15();
34 size_t ReadHeader50();
35 void ProcessExtra50(RawRead *Raw,size_t ExtraSize,BaseBlock *bb);
36 void RequestArcPassword();
37 void UnexpEndArcMsg();
38 void BrokenHeaderMsg();
39 void UnkEncVerMsg(const wchar *Name,const wchar *Info);
40 bool DoGetComment(Array<wchar> *CmtData);
41 bool ReadCommentData(Array<wchar> *CmtData);
42
43#if !defined(RAR_NOCRYPT)
44 CryptData HeadersCrypt;
45#endif
46 ComprDataIO SubDataIO;
47 bool DummyCmd;
48 RAROptions *Cmd;
49
50
51 RarTime LatestTime;
52 int LastReadBlock;
53 HEADER_TYPE CurHeaderType;
54
55 bool SilentOpen;
56#ifdef USE_QOPEN
57 QuickOpen QOpen;
58 bool ProhibitQOpen;
59#endif
60 public:
61 Archive(RAROptions *InitCmd=NULL);
62 ~Archive();
63 static RARFORMAT IsSignature(const byte *D,size_t Size);
64 bool IsArchive(bool EnableBroken);
65 size_t SearchBlock(HEADER_TYPE HeaderType);
66 size_t SearchSubBlock(const wchar *Type);
67 size_t SearchRR();
68 size_t ReadHeader();
69 void CheckArc(bool EnableBroken);
70 void CheckOpen(const wchar *Name);
71 bool WCheckOpen(const wchar *Name);
72 bool GetComment(Array<wchar> *CmtData);
73 void ViewComment();
74 void SetLatestTime(RarTime *NewTime);
75 void SeekToNext();
76 bool CheckAccess();
77 bool IsArcDir();
78 void ConvertAttributes();
79 void VolSubtractHeaderSize(size_t SubSize);
80 uint FullHeaderSize(size_t Size);
81 int64 GetStartPos();
82 void AddSubData(byte *SrcData,uint64 DataSize,File *SrcFile,
83 const wchar *Name,uint Flags);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected