File indexing completed on 2025-12-15 10:29:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TEntryListFromFile
0013 #define ROOT_TEntryListFromFile
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #include "TEntryList.h"
0037
0038 #include <limits>
0039
0040 class TFile;
0041
0042 class TEntryListFromFile: public TEntryList
0043 {
0044 protected:
0045 TString fListFileName;
0046 TString fListName;
0047 Int_t fNFiles;
0048 Long64_t *fListOffset;
0049 TFile *fFile;
0050
0051 TObjArray *fFileNames;
0052
0053
0054 static constexpr auto kBigNumber = std::numeric_limits<Long64_t>::max();
0055
0056 private:
0057 TEntryListFromFile(const TEntryListFromFile&);
0058 TEntryListFromFile &operator=(const TEntryListFromFile&);
0059
0060 public:
0061
0062 TEntryListFromFile();
0063 TEntryListFromFile(const char *filename, const char *listname, Int_t nfiles);
0064 ~TEntryListFromFile() override;
0065 void Add(const TEntryList * ) override {};
0066 Int_t Contains(Long64_t , TTree * ) override { return 0; };
0067 bool Enter(Long64_t , TTree * ) override { return false; };
0068 bool Enter(Long64_t , const char * , const char * ) override { return false; };
0069 TEntryList *GetCurrentList() const override { return fCurrent; };
0070 TEntryList *GetEntryList(const char * , const char * , Option_t * ) override { return nullptr; };
0071
0072 Long64_t GetEntry(Long64_t index) override;
0073 Long64_t GetEntryAndTree(Long64_t index, Int_t &treenum) override;
0074 virtual Long64_t GetEntries();
0075 virtual Long64_t GetEntriesFast() const { return fN; }
0076
0077 Long64_t GetN() const override { return fN; }
0078 const char *GetTreeName() const override { return fTreeName.Data(); }
0079 const char *GetFileName() const override { return fFileName.Data(); }
0080 Int_t GetTreeNumber() const override { return fTreeNumber; }
0081
0082 virtual Int_t LoadList(Int_t listnumber);
0083
0084 Int_t Merge(TCollection * ) override{ return 0; }
0085
0086 Long64_t Next() override;
0087 void OptimizeStorage() override {};
0088 bool Remove(Long64_t , TTree * ) override{ return false; }
0089
0090 void Print(const Option_t* option = "") const override;
0091
0092 void SetTree(const TTree * ) override {}
0093 void SetTree(const char * , const char * ) override {}
0094 virtual void SetFileNames(TObjArray *names) { fFileNames = names; }
0095 void SetTreeNumber(Int_t index) override { fTreeNumber=index; }
0096 virtual void SetNFiles(Int_t nfiles) { fNFiles = nfiles; }
0097 void Subtract(const TEntryList * ) override {}
0098
0099 ClassDefOverride(TEntryListFromFile, 1);
0100 };
0101 #endif