LCOV - code coverage report
Current view: top level - HLT/VZERO - AliHLTVZEROAgent.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 1 8 12.5 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id$
       3             : 
       4             : #ifndef ALIHLTVZEROAGENT_H
       5             : #define ALIHLTVZEROAGENT_H
       6             : 
       7             : /* This file is property of and copyright by the ALICE HLT Project        * 
       8             :  * ALICE Experiment at CERN, All rights reserved.                         *
       9             :  * See cxx source for full Copyright notice                               */
      10             : 
      11             : /** @file    AliHLTVZEROAgent.h
      12             :     @author  Jochen Thaeder <jochen@thaeder.de>
      13             :     @brief   Agent of the libAliHLTVZERO library
      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             : #include "AliHLTModuleAgent.h"
      23             : 
      24             : /**
      25             :  * @class AliHLTVZEROAgent
      26             :  * This is the agent for the AliHLTVZERO library.<br>
      27             :  *
      28             :  * The sample agent implements all interface function provided by @ref
      29             :  * AliHLTModuleAgent :
      30             :  * - CreateConfigurations() <br>
      31             :  *   The method gets an instance of the AliHLTConfigurationHanler to add
      32             :  *   configurations, e.g. 
      33             :  *   <pre>
      34             :  *   handler->CreateConfiguration("my-puplisher"  , "FilePublisher", NULL , "data.bin");
      35             :  *   ...
      36             :  *   handler->CreateConfiguration("my-analysis-chain"  , "FileWriter", "my-processor" , "my arguments");
      37             :  *   </pre>
      38             :  * - GetReconstructionChains() <br>
      39             :  *   returns a string of blank separated configurations to be run during
      40             :  *   local event reconstruction.
      41             :  *   <pre>
      42             :  *   return "my-data-sink my-analysis-chain";
      43             :  *   </pre>
      44             :  * - GetRequiredComponentLibraries() <br>
      45             :  *   returns a string of blank separated libraries which have to be loaded
      46             :  *   in addition in order to load all required components. <br>
      47             :  *   @note Not the right place for library dependencies.
      48             :  *   <pre>
      49             :  *   return "libAliHLTUtil.so";
      50             :  *   </pre>
      51             :  * - RegisterComponents() <br>
      52             :  *   registers the components: AliHLTDummyComponent, AliHLTSampleComponent1,
      53             :  *   AliHLTSampleComponent2, and AliHLTSampleMonitoringComponent<br>
      54             :  * - GetHandlerDescription() <br>
      55             :  *   Handles HLTOUT data blocks of type {DDL_RAW,SMPL}
      56             :  *   <pre>
      57             :  *   if (dt==(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginSample)) {
      58             :  *     desc=AliHLTOUTHandlerDesc(kRawReader, dt, GetModuleId());
      59             :  *     return 1;
      60             :  *   }
      61             :  *   </pre>
      62             :  * - GetOutputHandler() <br>
      63             :  *   Returns handler AliHLTOUTHandlerEquId for HLTOUT data blocks of
      64             :  *   type {DDL_RAW,SMPL}
      65             :  *   <pre>
      66             :  *   if (dt==(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginSample)) {
      67             :  *     return new AliHLTOUTHandlerEquId;
      68             :  *   }
      69             :  *   </pre>
      70             :  * - DeleteOutputHandler() <br>
      71             :  *   Deletes the output handler. In this case there is no special handling
      72             :  *   needed.
      73             :  *
      74             :  * In order to hook the sample library up to the HLT system on global object
      75             :  * @ref gAliHLTVZEROAgent of the agent is defined in the source code.
      76             :  * 
      77             :  * @ingroup alihlt_system
      78             :  */
      79             : class AliHLTVZEROAgent : public AliHLTModuleAgent {
      80             :  public:
      81             : 
      82             :   /*
      83             :    * ---------------------------------------------------------------------------------
      84             :    *                            Constructor / Destructor
      85             :    * ---------------------------------------------------------------------------------
      86             :    */
      87             : 
      88             :   /**
      89             :    * standard constructor. The agent is automatically registered in the
      90             :    * global agent manager
      91             :    */
      92             :   AliHLTVZEROAgent();
      93             : 
      94             :   /** destructor */
      95             :   virtual ~AliHLTVZEROAgent();
      96             : 
      97             :   /*
      98             :    * ---------------------------------------------------------------------------------
      99             :    * Public functions to implement AliHLTModuleAgent's interface.
     100             :    * These functions are required for the registration process
     101             :    * ---------------------------------------------------------------------------------
     102             :    */
     103             : 
     104             :   UInt_t GetDetectorMask() const;
     105             : 
     106             :   /**
     107             :    * Register all configurations belonging to the VZERO library with the
     108             :    * AliHLTConfigurationHandler. 
     109             :    * @param handler   [in] the configuration handler
     110             :    * @param rawReader [in] AliRoot RawReader instance 
     111             :    * @param runloader [in] AliRoot runloader
     112             :    * @return neg. error code if failed
     113             :    */
     114             :   Int_t CreateConfigurations(AliHLTConfigurationHandler* handler,
     115             :                              AliRawReader* rawReader=NULL,
     116             :                              AliRunLoader* runloader=NULL) const;
     117             : 
     118             :   /**
     119             :    * Get the top configurations for local event reconstruction.
     120             :    * A top configuration describes a processing chain. It can simply be
     121             :    * described by the last configuration(s) in the chain. 
     122             :    * @param rawReader [in] AliRoot RawReader instance 
     123             :    * @param runloader [in] AliRoot runloader
     124             :    * @return string containing the top configurations separated by blanks
     125             :    */
     126             :   const Char_t* GetReconstructionChains(AliRawReader* rawReader=NULL,
     127             :                                         AliRunLoader* runloader=NULL) const;
     128             : 
     129             :   /**
     130             :    * Component libraries which the configurations of this agent depend on.
     131             :    * @return list of component libraries as a blank-separated string.
     132             :    */
     133             :   const Char_t* GetRequiredComponentLibraries() const;
     134             : 
     135             :   /**
     136             :    * Register components for the AliHLTVZERO library.
     137             :    * @param pHandler  [in] instance of the component handler          
     138             :    */
     139             :   Int_t RegisterComponents(AliHLTComponentHandler* pHandler) const;
     140             :   
     141             :   /** interface function, see @ref AliHLTModuleAgent for description */
     142             :   Int_t GetHandlerDescription(AliHLTComponentDataType dt, AliHLTUInt32_t spec,
     143             :                               AliHLTOUTHandlerDesc& desc) const;
     144             : 
     145             :   /** interface function, see @ref AliHLTModuleAgent for description */
     146             :   AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt, AliHLTUInt32_t spec);
     147             :   
     148             :   /** interface function, see @ref AliHLTModuleAgent for description */
     149             :   Int_t DeleteOutputHandler(AliHLTOUTHandler* pInstance);
     150             : 
     151             :   /** interface function, see @ref AliHLTModuleAgent for description */
     152             :   AliHLTModulePreprocessor* GetPreprocessor();
     153             : 
     154             :  protected:
     155             :  
     156             :   ///////////////////////////////////////////////////////////////////////////////////
     157             :   
     158             : private:
     159             : 
     160             :   /*
     161             :    * ---------------------------------------------------------------------------------
     162             :    * Private functions to implement AliHLTModuleAgent's interface.
     163             :    * These functions provide initialization as well as the actual processing
     164             :    * capabilities of the component. 
     165             :    * ---------------------------------------------------------------------------------
     166             :    */
     167             : 
     168             :   /** copy constructor prohibited */
     169             :   AliHLTVZEROAgent(const AliHLTVZEROAgent&);
     170             : 
     171             :   /** assignment operator prohibited */
     172             :   AliHLTVZEROAgent& operator=(const AliHLTVZEROAgent&);
     173             : 
     174             :   /*
     175             :    * ---------------------------------------------------------------------------------
     176             :    *                             Members - private
     177             :    * ---------------------------------------------------------------------------------
     178             :    */
     179             :   
     180             :   /** ROOT specific member definition */
     181           6 :   ClassDef(AliHLTVZEROAgent, 0);
     182             : };
     183             : 
     184             : #endif

Generated by: LCOV version 1.11