1 /*! 2 * \class StFileI 3 */ 4 #ifndef ROOT_StFileI 5 #define ROOT_StFileI 6 7 #include "TNamed.h" 8 #include "assert.h" 9 #include "string.h" 10 11 const UInt_t kUMAX = (UInt_t)(-1); 12 13 class StUKey 14 { 15 public: 16 StUKey(const char *name=0,UInt_t *uk=0,int nk=1); 17 StUKey(const char *name,UInt_t uk); 18 StUKey(UInt_t uRun,UInt_t uEvent=0); 19 virtual ~StUKey(){} 20 virtual StUKey &operator=( const StUKey &from); 21 virtual StUKey &operator=( UInt_t from); 22 virtual StUKey &operator=( Int_t from){return *this=(UInt_t)from;} 23 virtual StUKey &operator=( const char *from); 24 virtual void Update(const StUKey &from,const char *name=0); 25 virtual void SetName(const char *name){fName=name;} 26 virtual const char *GetName() const {return fName;} 27 virtual TString GetKey() const; 28 virtual Int_t GetNInt() const{ return fNUrr;} 29 virtual const UInt_t *GetUrr() const{ return fUrr;} 30 virtual void SetKey(const char *key); 31 virtual void SetUrr(const UInt_t *key,int nk); 32 virtual UInt_t GetSum() const; 33 virtual Int_t EOK() const { return fUrr[0]==kUMAX;} 34 virtual Int_t IsNull() const { return !fUrr[0];} 35 virtual Int_t Compare(StUKey &uk2) const 36 { return strcmp(GetKey().Data(),uk2.GetKey().Data());} 37 virtual Int_t GetRunId() const { return fUrr[0]; } 38 virtual Int_t GetEventId() const { return fUrr[1]; } 39 private: 40 TString fName; 41 Int_t fNUrr; 42 UInt_t fUrr[9]; 43 }; 44 45 46 class StFileI : public TNamed 47 { 48 public: 49 StFileI(const char *name="",const char *titl=""):TNamed(name,titl){SetDebug(0);} 50 virtual ~StFileI(){} 51 virtual Int_t SetDebug(Int_t dbl=1){fDebug=dbl; return fDebug;} 52 virtual Int_t GetDebug() const {return fDebug;} 53 virtual Int_t Init(int /* Argc=0 */, const char** /* Argv=0 */){return 0;} 54 virtual Int_t Init(const char *argv) 55 {const char *Argv[1]; Argv[0]=argv; return Init(1,Argv);}; 56 57 virtual void ls(Option_t *opt="") const {if(opt){};}; 58 virtual Int_t AddFile(const char */* file */,const char * opt=0){if (opt) {}; return 0;}; 59 virtual Int_t AddFile(const char **/* fileList */){return 0;}; 60 virtual Int_t AddWild(const char */* file */,const char */* opt=0 */){return 0;}; 61 virtual Int_t GetNFiles()=0; 62 virtual Int_t GetNBundles()=0; 63 virtual Int_t GetBundleSize()=0; 64 virtual const char *GetFileName(Int_t idx=-1)=0; 65 virtual const char *GetCompName(Int_t idx=0)=0; 66 virtual const char *GetFormat(Int_t idx=0)=0; 67 virtual Int_t GetNextBundle()=0; 68 virtual Int_t GetNextEvent(UInt_t *NextEventNumber) 69 {*NextEventNumber=0;return 0;} 70 virtual StUKey GetNextEvent(); 71 virtual void Rewind(){assert(0);}; 72 protected: 73 Int_t fDebug; 74 75 ClassDef(StFileI,0) 76 }; 77 #endif 78