Patch from Matthias Richter:
authorslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 15 Jan 2010 15:27:12 +0000 (15:27 +0000)
committerslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 15 Jan 2010 15:27:12 +0000 (15:27 +0000)
Moved implementation of AliHLTMisc::LoadInstance to the header file to facilitate the usage of template class.

HLT/BASE/AliHLTMisc.cxx
HLT/BASE/AliHLTMisc.h

index 426955f..aa321dd 100644 (file)
@@ -23,9 +23,6 @@
 ///         loaded libraries
 
 #include "AliHLTMisc.h"
-#include "AliHLTLogging.h"
-#include "TClass.h"
-#include "TSystem.h"
 
 /** ROOT macro for the implementation of ROOT specific class methods */
 ClassImp(AliHLTMisc);
@@ -42,38 +39,6 @@ AliHLTMisc::~AliHLTMisc()
 
 AliHLTMisc* AliHLTMisc::fgInstance=NULL;
 
-template<class T>
-T* AliHLTMisc::LoadInstance(const T* /*t*/, const char* classname, const char* library)
-{
-  // see header file for function documentation
-  int iLibResult=0;
-  T* pInstance=NULL;
-  AliHLTLogging log;
-  TClass* pCl=NULL;
-  ROOT::NewFunc_t pNewFunc=NULL;
-  do {
-    pCl=TClass::GetClass(classname);
-  } while (!pCl && (iLibResult=gSystem->Load(library))==0);
-  if (iLibResult>=0) {
-    if (pCl && (pNewFunc=pCl->GetNew())!=NULL) {
-      void* p=(*pNewFunc)(NULL);
-      if (p) {
-       pInstance=reinterpret_cast<T*>(p);
-       if (!pInstance) {
-         log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "type cast (%s) to instance failed", classname);
-       }
-      } else {
-       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);
-    }
-  } else {
-    log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not load %s library in order to find class descriptor %s", library, classname);
-  }
-  return pInstance;
-}
-
 AliHLTMisc& AliHLTMisc::Instance()
 {
   // see header file for function documentation
index b7561ab..7ddb843 100644 (file)
@@ -16,6 +16,9 @@
 #include "TObject.h"
 #include "AliHLTStdIncludes.h"
 #include "AliHLTDataTypes.h"
+#include "AliHLTLogging.h"
+#include "TClass.h"
+#include "TSystem.h"
 
 class AliCDBManager;
 class AliCDBEntry;
@@ -94,6 +97,38 @@ extern "C" {
 }
 #endif
 
+template<class T>
+T* AliHLTMisc::LoadInstance(const T* /*t*/, const char* classname, const char* library)
+{
+  // see header file for function documentation
+  int iLibResult=0;
+  T* pInstance=NULL;
+  AliHLTLogging log;
+  TClass* pCl=NULL;
+  ROOT::NewFunc_t pNewFunc=NULL;
+  do {
+    pCl=TClass::GetClass(classname);
+  } while (!pCl && (iLibResult=gSystem->Load(library))==0);
+  if (iLibResult>=0) {
+    if (pCl && (pNewFunc=pCl->GetNew())!=NULL) {
+      void* p=(*pNewFunc)(NULL);
+      if (p) {
+       pInstance=reinterpret_cast<T*>(p);
+       if (!pInstance) {
+         log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "type cast (%s) to instance failed", classname);
+       }
+      } else {
+       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);
+    }
+  } else {
+    log.Logging(kHLTLogError, "AliHLTMisc::LoadInstance", "HLT Analysis", "can not load %s library in order to find class descriptor %s", library, classname);
+  }
+  return pInstance;
+}
+
 // direct printout of data type struct
 ostream  &operator<<(ostream &str, const AliHLTComponentDataType&);