LCOV - code coverage report
Current view: top level - RAW/RAWDatarec - AliRawHLTManager.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 2 50.0 %
Date: 2016-06-14 17:26:59 Functions: 1 8 12.5 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // @(#) $Id: AliRawHLTManager.h 23318 2008-01-14 12:43:28Z hristov $
       3             : 
       4             : #ifndef ALIRAWHLTMANAGER_H
       5             : #define ALIRAWHLTMANAGER_H
       6             : //* This file is property of and copyright by the ALICE HLT Project        * 
       7             : //* ALICE Experiment at CERN, All rights reserved.                         *
       8             : //* See cxx source for full Copyright notice                               *
       9             : 
      10             : /** @file   AliRawHLTManager.h
      11             :     @author Matthias Richter
      12             :     @date   
      13             :     @brief  dynamic generation of HLT RAW readers and streams
      14             : */
      15             : 
      16             : // see below for class documentation
      17             : // or
      18             : // refer to README to build package
      19             : // or
      20             : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
      21             :  
      22             : class AliRawReader;
      23             : #include "TObject.h"
      24             : 
      25             : extern "C" {
      26             :   typedef AliRawReader* (*AliRawReaderHLTCreateInstance_t)(AliRawReader* pParentReader, const char* options);
      27             : }
      28             :                         
      29             : /**
      30             :  * @class AliRawHLTManager
      31             :  * The class gives dynamic access to creater methods for HLT RAW readers and
      32             :  * streams without any library dependencies to HLT libraries.
      33             :  */
      34           0 : class AliRawHLTManager {
      35             :  public:
      36             :   AliRawHLTManager();
      37             :   virtual ~AliRawHLTManager();
      38             : 
      39             :   /**
      40             :    * Create an instance of the AliRawReaderHLT.
      41             :    * The AliRawReaderHLT instance needs the parent RAW reader and a list
      42             :    * of detectors for which it should access data from the HLT stream.
      43             :    */
      44             :   static AliRawReader* CreateRawReaderHLT(AliRawReader* pParent, const char* detectors);
      45             : 
      46             :   /**
      47             :    * Create an instance of a RAW stream.
      48             :    * There is no common base class for RAW streams due to the different nature of the
      49             :    * detectors and the data. The least common class is the TObject. The calling code
      50             :    * should check if the right class has been created by
      51             :    * <pre>
      52             :    * TObject pObject=AliRawHLTManager::CreateRawStream("MyClass");
      53             :    * MyClass* pClass=dynamic_cast<MyClass*>(pObject)
      54             :    * </pre>
      55             :    *
      56             :    * \b NOTE: The function redirects the request to the HLT framework, a handler
      57             :    * to actually create the RAW stream must be implemented in the corresponding
      58             :    * component library.
      59             :    */
      60             :   static TObject* CreateRawStream(const char* className);
      61             :  protected:
      62             :  private:
      63             :   enum {kUnloaded=0, kLoaded, kUnavailable};
      64             : 
      65             :   /**
      66             :    * Load the HLT interface library
      67             :    */
      68             :   static int LoadLibrary();
      69             : 
      70             :   /** status of the loading of the HOMER library */
      71             :   static int fLibraryStatus; //!transient
      72             : 
      73             :   /** entry in the HOMER library */
      74             :   static AliRawReaderHLTCreateInstance_t fFctCreateRawReaderHLT; //!transient
      75             : 
      76             :   /** entry in the HOMER library */
      77             :   static void* fFctCreateRawStream; //!transient
      78             : 
      79         128 :   ClassDef(AliRawHLTManager, 0)
      80             : };
      81             : 
      82             : // those definitions have been copied one to one from rec/AliRawReaderHLT.h
      83             : // to avoid including this header file
      84             : #define ALIHLTREC_LIBRARY                   "libHLTrec.so"
      85             : #define ALIHLTREC_LIBRARY_VERSION           0
      86             : #define ALIRAWREADERHLT_CREATE_INSTANCE     "AliRawReaderHLTCreateInstance"
      87             : 
      88             : 
      89             : #endif //ALIRAWHLTMANAGER_H

Generated by: LCOV version 1.11