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 /////////////////////////////////////////////////////////////////////
19 class AliCDBStorageFactory;
22 class AliCDBManager: public TObject {
26 void RegisterFactory(AliCDBStorageFactory* factory);
28 Bool_t HasStorage(const char* dbString) const;
30 AliCDBParam* CreateParameter(const char* dbString) const;
32 AliCDBStorage* GetStorage(const char* dbString);
33 AliCDBStorage* GetStorage(const AliCDBParam* param);
35 TList* GetActiveStorages();
37 void SetDefaultStorage(const char* dbString);
38 void SetDefaultStorage(const AliCDBParam* param);
39 void SetDefaultStorage(AliCDBStorage *storage);
41 Bool_t IsDefaultStorageSet() const {return fDefaultStorage != 0;}
43 AliCDBStorage* GetDefaultStorage() const {return fDefaultStorage;}
45 void RemoveDefaultStorage();
47 void SetDrain(const char* dbString);
48 void SetDrain(const AliCDBParam* param);
49 void SetDrain(AliCDBStorage *storage);
51 Bool_t IsDrainSet() const {return fDrainStorage != 0;}
53 Bool_t Drain(AliCDBEntry* entry);
57 void DestroyActiveStorages();
58 void DestroyActiveStorage(AliCDBStorage* storage);
60 static void Destroy();
63 static AliCDBManager* Instance();
68 static AliCDBManager* fgInstance; // AliCDBManager instance
70 AliCDBStorage* GetActiveStorage(const AliCDBParam* param);
71 void PutActiveStorage(AliCDBParam* param, AliCDBStorage* storage);
75 TList fFactories; // list of registered storage factories
76 TMap fActiveStorages; // list of active storages
77 AliCDBStorage *fDefaultStorage; // pointer to default storage
78 AliCDBStorage *fDrainStorage; // pointer to drain storage
80 ClassDef(AliCDBManager, 0);
84 /////////////////////////////////////////////////////////////////////
86 // class AliCDBStorageFactory //
88 /////////////////////////////////////////////////////////////////////
91 class AliCDBStorageFactory: public TObject {
92 friend class AliCDBManager;
95 virtual Bool_t Validate(const char* dbString) = 0;
96 virtual AliCDBParam* CreateParameter(const char* dbString) = 0;
97 virtual ~AliCDBStorageFactory(){}
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;};
130 TString fType; // CDB type?
131 TString fURI; // CDB URI?
133 ClassDef(AliCDBParam, 0);