1 #ifndef ALI_CDB_MANAGER_H
2 #define ALI_CDB_MANAGER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /////////////////////////////////////////////////////////////////////
9 // class AliCDBManager //
11 /////////////////////////////////////////////////////////////////////
17 #include "AliCDBEntry.h"
20 class AliCDBStorageFactory;
23 class AliCDBManager: public TObject {
27 void RegisterFactory(AliCDBStorageFactory* factory);
29 Bool_t HasStorage(const char* dbString);
31 AliCDBParam* CreateParameter(const char* dbString);
33 AliCDBStorage* GetStorage(const char* dbString);
34 AliCDBStorage* GetStorage(const AliCDBParam* param);
36 TList* GetActiveStorages();
38 void SetDefaultStorage(const char* dbString);
39 void SetDefaultStorage(const AliCDBParam* param);
40 void SetDefaultStorage(AliCDBStorage *storage);
42 Bool_t IsDefaultStorageSet() {return fDefaultStorage != 0;}
44 AliCDBStorage* GetDefaultStorage() {return fDefaultStorage;}
46 void RemoveDefaultStorage();
48 void SetDrain(const char* dbString);
49 void SetDrain(const AliCDBParam* param);
50 void SetDrain(AliCDBStorage *storage);
52 Bool_t IsDrainSet() {return fDrainStorage != 0;}
54 Bool_t Drain(AliCDBEntry* entry);
58 void DestroyActiveStorages();
59 void DestroyActiveStorage(AliCDBStorage* storage);
61 static void Destroy();
64 static AliCDBManager* Instance();
69 static AliCDBManager* fgInstance;
71 AliCDBStorage* GetActiveStorage(const AliCDBParam* param);
72 void PutActiveStorage(AliCDBParam* param, AliCDBStorage* storage);
76 TList fFactories; // list of registered storage factories
77 TMap fActiveStorages; // list of active storages
78 AliCDBStorage *fDefaultStorage; // pointer to default storage
79 AliCDBStorage *fDrainStorage; // pointer to drain storage
81 ClassDef(AliCDBManager, 0);
85 /////////////////////////////////////////////////////////////////////
87 // class AliCDBStorageFactory //
89 /////////////////////////////////////////////////////////////////////
92 class AliCDBStorageFactory: public TObject {
93 friend class AliCDBManager;
96 virtual Bool_t Validate(const char* dbString) = 0;
97 virtual AliCDBParam* CreateParameter(const char* dbString) = 0;
100 virtual AliCDBStorage* Create(const AliCDBParam* param) = 0;
102 ClassDef(AliCDBStorageFactory, 0);
105 /////////////////////////////////////////////////////////////////////
107 // class AliCDBParam //
109 /////////////////////////////////////////////////////////////////////
111 class AliCDBParam: public TObject {
116 virtual ~AliCDBParam();
118 const TString& GetType() const {return fType;};
119 const TString& GetURI() const {return fURI;};
121 virtual AliCDBParam* CloneParam() const = 0;
125 void SetType(const char* type) {fType = type;};
126 void SetURI(const char* uri) {fURI = uri;};
133 ClassDef(AliCDBParam, 0);