12 #ifndef ROOT_TArchiveFile
13 #define ROOT_TArchiveFile
24 class TArchiveFile :
public TObject {
27 TArchiveFile(
const TArchiveFile&) =
delete;
28 TArchiveFile& operator=(
const TArchiveFile&) =
delete;
36 TArchiveMember *fCurMember;
38 static Bool_t ParseUrl(
const char *url, TString &archive, TString &member, TString &type);
41 TArchiveFile() : fArchiveName(
""), fMemberName(
""), fMemberIndex(-1), fFile(0), fMembers(0), fCurMember(0) { }
42 TArchiveFile(
const char *archive,
const char *member, TFile *file);
43 virtual ~TArchiveFile();
45 virtual Int_t OpenArchive() = 0;
46 virtual Int_t SetCurrentMember() = 0;
47 virtual Int_t SetMember(
const char *member);
48 virtual Int_t SetMember(Int_t idx);
50 Long64_t GetMemberFilePosition()
const;
51 TArchiveMember *GetMember()
const {
return fCurMember; }
52 TObjArray *GetMembers()
const {
return fMembers; }
53 Int_t GetNumberOfMembers()
const;
55 const char *GetArchiveName()
const {
return fArchiveName; }
56 const char *GetMemberName()
const {
return fMemberName; }
57 Int_t GetMemberIndex()
const {
return fMemberIndex; }
59 static TArchiveFile *Open(
const char *url, TFile *file);
61 ClassDef(TArchiveFile,1)
65 class TArchiveMember :
public TObject {
67 friend class TArchiveFile;
74 Long64_t fFilePosition;
81 TArchiveMember(
const char *name);
82 TArchiveMember(
const TArchiveMember &member);
83 TArchiveMember &operator=(
const TArchiveMember &rhs);
84 virtual ~TArchiveMember() { }
86 const char *GetName()
const {
return fName; }
87 const char *GetComment()
const {
return fComment; }
88 TDatime GetModTime()
const {
return fModTime; }
89 Long64_t GetPosition()
const {
return fPosition; }
90 Long64_t GetFilePosition()
const {
return fFilePosition; }
91 Long64_t GetCompressedSize()
const {
return fCsize; }
92 Long64_t GetDecompressedSize()
const {
return fDsize; }
93 Bool_t IsDirectory()
const {
return fDirectory; }
95 ClassDef(TArchiveMember,1)