]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliRunDataStorage.h
modification for MacOSX 1.4
[u/mrichter/AliRoot.git] / STEER / AliRunDataStorage.h
CommitLineData
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
15class TFile;
16class AliMetaData;
17class AliRunData;
18
19
20class AliRunDataStorage: public TObject {
21public:
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
35protected:
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
45private:
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