adding availability check for a list of OCDB objects, code cleanup and updated docume...
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTMisc.h
index c392322..7846f41 100644 (file)
@@ -25,6 +25,7 @@ class AliCDBEntry;
 class AliRawReader;
 class AliHLTComponentDataType;
 class AliHLTGlobalTriggerDecision;
+class TMap;
 
 class AliHLTMisc : public TObject {
  public:
@@ -32,18 +33,25 @@ class AliHLTMisc : public TObject {
   ~AliHLTMisc();
 
   template<class T>
-  static T* LoadInstance(const T* dummy, const char* classname, const char* library);
+  static T* LoadInstance(const T* dummy, const char* classname, const char* library=NULL);
 
   static AliHLTMisc& Instance();
 
   virtual int InitCDB(const char* cdbpath);
 
   virtual int SetCDBRunNo(int runNo);
-  virtual int GetCDBRunNo();
+  virtual int GetCDBRunNo() const;
 
-  virtual AliCDBEntry* LoadOCDBEntry(const char* path, int runNo=-1, int version = -1, int subVersion = -1);
+  /// Load an OCDB object
+  virtual AliCDBEntry* LoadOCDBEntry(const char* path, int runNo=-1, int version = -1, int subVersion = -1) const;
 
-  virtual TObject* ExtractObject(AliCDBEntry* entry);
+  // Extract the TObject instance from the CDB object
+  virtual TObject* ExtractObject(AliCDBEntry* entry) const;
+
+  /// check the availability of the OCDB entry descriptions in the TMap
+  ///  key : complete OCDB path of the entry
+  ///  value : auxiliary object - short description
+  virtual int CheckOCDBEntries(const TMap* const pMap) const;
 
   virtual int InitMagneticField() const;
 
@@ -109,7 +117,7 @@ T* AliHLTMisc::LoadInstance(const T* /*t*/, const char* classname, const char* l
   ROOT::NewFunc_t pNewFunc=NULL;
   do {
     pCl=TClass::GetClass(classname);
-  } while (!pCl && (iLibResult=gSystem->Load(library))==0);
+  } while (!pCl && library!=NULL && (iLibResult=gSystem->Load(library))==0);
   if (iLibResult>=0) {
     if (pCl && (pNewFunc=pCl->GetNew())!=NULL) {
       void* p=(*pNewFunc)(NULL);
@@ -122,7 +130,7 @@ T* AliHLTMisc::LoadInstance(const T* /*t*/, const char* classname, const char* l
        log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not create instance of type %s from class descriptor", classname);
       }
     } else {
-      log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not find class descriptor %s", classname);
+      log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not find TClass descriptor %s", classname);
     }
   } else {
     log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not load %s library in order to find class descriptor %s", library, classname);