ROOT logo
// $Id$

#ifndef ALIHLTPLUGINBASE_H
#define ALIHLTPLUGINBASE_H
//* This file is property of and copyright by the ALICE HLT Project        * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//* See cxx source for full Copyright notice                               *

/** @file   AliHLTPluginBase.h
    @author Matthias Richter
    @date   
    @brief  Base class for AliRoot HLT plugins.
*/

// see below for class documentation
// or
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt

#include "TObject.h"

class AliHLTSystem;

/**
 * @class AliHLTPluginBase
 * Base class for AliRoot HLT plugins.
 *
 * In order to allow definitions of HLT chains in the same macro as
 * the simulation/reconstruction, a global instance of AliHLTSystem
 * is required to make the registration of configurations work.
 *
 * AliHLTPlugin, AliRawReaderHLT and AliHLTSimulation all use
 * the global AliHLTSystem instance hosted by this base class.
 */
class AliHLTPluginBase {
 public:
  AliHLTPluginBase();
  /** destructor */
  virtual ~AliHLTPluginBase();

  /**
   * Init the global AliHLTSystem instance.
   */
  static void InitInstance();

  /**
   * Get the global AliHLTSystem instance.
   */
  static AliHLTSystem* GetInstance();

 protected:

 private:
  /** copy constructor prohibited */
  AliHLTPluginBase(const AliHLTPluginBase& src);
  /** assignment operator prohibited */
  AliHLTPluginBase& operator=(const AliHLTPluginBase& src);

  static AliHLTSystem* fpSystem; //! HLT steering object

  static int fNofInstances;

  ClassDef(AliHLTPluginBase, 0)   // base class for the HLT reconstruction
};

#endif
 AliHLTPluginBase.h:1
 AliHLTPluginBase.h:2
 AliHLTPluginBase.h:3
 AliHLTPluginBase.h:4
 AliHLTPluginBase.h:5
 AliHLTPluginBase.h:6
 AliHLTPluginBase.h:7
 AliHLTPluginBase.h:8
 AliHLTPluginBase.h:9
 AliHLTPluginBase.h:10
 AliHLTPluginBase.h:11
 AliHLTPluginBase.h:12
 AliHLTPluginBase.h:13
 AliHLTPluginBase.h:14
 AliHLTPluginBase.h:15
 AliHLTPluginBase.h:16
 AliHLTPluginBase.h:17
 AliHLTPluginBase.h:18
 AliHLTPluginBase.h:19
 AliHLTPluginBase.h:20
 AliHLTPluginBase.h:21
 AliHLTPluginBase.h:22
 AliHLTPluginBase.h:23
 AliHLTPluginBase.h:24
 AliHLTPluginBase.h:25
 AliHLTPluginBase.h:26
 AliHLTPluginBase.h:27
 AliHLTPluginBase.h:28
 AliHLTPluginBase.h:29
 AliHLTPluginBase.h:30
 AliHLTPluginBase.h:31
 AliHLTPluginBase.h:32
 AliHLTPluginBase.h:33
 AliHLTPluginBase.h:34
 AliHLTPluginBase.h:35
 AliHLTPluginBase.h:36
 AliHLTPluginBase.h:37
 AliHLTPluginBase.h:38
 AliHLTPluginBase.h:39
 AliHLTPluginBase.h:40
 AliHLTPluginBase.h:41
 AliHLTPluginBase.h:42
 AliHLTPluginBase.h:43
 AliHLTPluginBase.h:44
 AliHLTPluginBase.h:45
 AliHLTPluginBase.h:46
 AliHLTPluginBase.h:47
 AliHLTPluginBase.h:48
 AliHLTPluginBase.h:49
 AliHLTPluginBase.h:50
 AliHLTPluginBase.h:51
 AliHLTPluginBase.h:52
 AliHLTPluginBase.h:53
 AliHLTPluginBase.h:54
 AliHLTPluginBase.h:55
 AliHLTPluginBase.h:56
 AliHLTPluginBase.h:57
 AliHLTPluginBase.h:58
 AliHLTPluginBase.h:59
 AliHLTPluginBase.h:60
 AliHLTPluginBase.h:61
 AliHLTPluginBase.h:62
 AliHLTPluginBase.h:63
 AliHLTPluginBase.h:64
 AliHLTPluginBase.h:65
 AliHLTPluginBase.h:66
 AliHLTPluginBase.h:67