1 #ifndef ALIRUNDATASTORAGE_H
2 #define ALIRUNDATASTORAGE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 /// base class for data base access classes
13 #include <TObjArray.h>
16 class AliSelectionMetaData;
17 class AliObjectMetaData;
21 class AliRunDataStorage: public TObject {
23 virtual ~AliRunDataStorage();
25 const TObject* Get(const char* name, Int_t runNumber); // Gets an object from the database
27 Bool_t Put(const TObject* object,
28 const AliObjectMetaData& objMetaData); // Put an object into the database
30 void Select(const AliSelectionMetaData& selMetaData); // Add a selection criterion
32 Bool_t RecordToFile(const char* fileName = "DB.root"); // prepares to record the retrieved entries to a local file
34 const AliObjectMetaData& GetObjectMetaData(const char* name); // Gets the ObjectMetaData of the retrieved entry (name=entry's name)
36 // virtual void TagForProduction(const AliSelectionMetaData& selMetaData, Uint_t prodVers);
38 static AliRunDataStorage* Instance(); // Instance of the current AliRunDataStorage object (AliRunDataFile, AliRunDataOrganizedFile etc...)
43 virtual AliRunData* GetEntry(AliSelectionMetaData& selMetaData, Int_t runNumber) = 0; // virtual, see the correspondent method of the derived classes
45 virtual Bool_t PutEntry(AliRunData* entry); // virtual, see the correspondent method of the derived classes
47 AliRunData* GetCurrentEntry(const char* name) const
48 {return (AliRunData*) fEntries.FindObject(name);}
51 AliRunDataStorage(const AliRunDataStorage& db);
52 AliRunDataStorage& operator = (const AliRunDataStorage& db);
54 TObjArray fSelection; //! meta data selection
56 TObjArray fEntries; //! array of current AliRunData objects
57 TFile* fRecordFile; //! file for recorded entries
59 static AliRunDataStorage* fgInstance; //! pointer to the DB instance
61 ClassDef(AliRunDataStorage, 0) // base class for data base access classes