]>
Commit | Line | Data |
---|---|---|
2c8628dd | 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 */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | /// | |
9 | /// base class for data base access classes | |
10 | /// | |
11 | ||
12 | #include <TObject.h> | |
13 | #include <TObjArray.h> | |
14 | ||
15 | class TFile; | |
f05209ee | 16 | class AliSelectionMetaData; |
17 | class AliObjectMetaData; | |
2c8628dd | 18 | class AliRunData; |
19 | ||
20 | ||
21 | class AliRunDataStorage: public TObject { | |
22 | public: | |
23 | virtual ~AliRunDataStorage(); | |
24 | ||
f05209ee | 25 | const TObject* Get(const char* name, Int_t runNumber); // Gets an object from the database |
2c8628dd | 26 | |
27 | Bool_t Put(const TObject* object, | |
f05209ee | 28 | const AliObjectMetaData& objMetaData); // Put an object into the database |
2c8628dd | 29 | |
f05209ee | 30 | void Select(const AliSelectionMetaData& selMetaData); // Add a selection criterion |
2c8628dd | 31 | |
f05209ee | 32 | Bool_t RecordToFile(const char* fileName = "DB.root"); // prepares to record the retrieved entries to a local file |
33 | ||
34 | const AliObjectMetaData& GetObjectMetaData(const char* name); // Gets the ObjectMetaData of the retrieved entry (name=entry's name) | |
35 | ||
36 | // virtual void TagForProduction(const AliSelectionMetaData& selMetaData, Uint_t prodVers); | |
2c8628dd | 37 | |
f05209ee | 38 | static AliRunDataStorage* Instance(); // Instance of the current AliRunDataStorage object (AliRunDataFile, AliRunDataOrganizedFile etc...) |
2c8628dd | 39 | |
40 | protected: | |
41 | AliRunDataStorage(); | |
42 | ||
f05209ee | 43 | virtual AliRunData* GetEntry(AliSelectionMetaData& selMetaData, Int_t runNumber) = 0; // virtual, see the correspondent method of the derived classes |
2c8628dd | 44 | |
f05209ee | 45 | virtual Bool_t PutEntry(AliRunData* entry); // virtual, see the correspondent method of the derived classes |
2c8628dd | 46 | |
47 | AliRunData* GetCurrentEntry(const char* name) const | |
48 | {return (AliRunData*) fEntries.FindObject(name);} | |
49 | ||
50 | private: | |
51 | AliRunDataStorage(const AliRunDataStorage& db); | |
52 | AliRunDataStorage& operator = (const AliRunDataStorage& db); | |
53 | ||
54 | TObjArray fSelection; //! meta data selection | |
55 | ||
56 | TObjArray fEntries; //! array of current AliRunData objects | |
57 | TFile* fRecordFile; //! file for recorded entries | |
58 | ||
59 | static AliRunDataStorage* fgInstance; //! pointer to the DB instance | |
60 | ||
61 | ClassDef(AliRunDataStorage, 0) // base class for data base access classes | |
62 | }; | |
63 | ||
64 | #endif |