]>
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; | |
16 | class AliMetaData; | |
17 | class AliRunData; | |
18 | ||
19 | ||
20 | class AliRunDataStorage: public TObject { | |
21 | public: | |
22 | virtual ~AliRunDataStorage(); | |
23 | ||
24 | const TObject* Get(const char* name, Int_t runNumber); | |
25 | ||
26 | Bool_t Put(const TObject* object, | |
27 | const AliMetaData& metaData); | |
28 | ||
29 | void Select(const AliMetaData& metaData); | |
30 | ||
31 | Bool_t RecordToFile(const char* fileName = "DB.root"); | |
32 | ||
33 | static AliRunDataStorage* Instance(); | |
34 | ||
35 | protected: | |
36 | AliRunDataStorage(); | |
37 | ||
38 | virtual AliRunData* GetEntry(AliMetaData& metaData, Int_t runNumber) = 0; | |
39 | ||
40 | virtual Bool_t PutEntry(AliRunData* entry); | |
41 | ||
42 | AliRunData* GetCurrentEntry(const char* name) const | |
43 | {return (AliRunData*) fEntries.FindObject(name);} | |
44 | ||
45 | private: | |
46 | AliRunDataStorage(const AliRunDataStorage& db); | |
47 | AliRunDataStorage& operator = (const AliRunDataStorage& db); | |
48 | ||
49 | TObjArray fSelection; //! meta data selection | |
50 | ||
51 | TObjArray fEntries; //! array of current AliRunData objects | |
52 | TFile* fRecordFile; //! file for recorded entries | |
53 | ||
54 | static AliRunDataStorage* fgInstance; //! pointer to the DB instance | |
55 | ||
56 | ClassDef(AliRunDataStorage, 0) // base class for data base access classes | |
57 | }; | |
58 | ||
59 | #endif |