ROOT logo
// $Id$

//**************************************************************************
//* This file is property of and copyright by the ALICE HLT Project        * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//*                                                                        *
//* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
//*                  for The ALICE HLT Project.                            *
//*                                                                        *
//* Permission to use, copy, modify and distribute this software and its   *
//* documentation strictly for non-commercial purposes is hereby granted   *
//* without fee, provided that the above copyright notice appears in all   *
//* copies and that both the copyright notice and this permission notice   *
//* appear in the supporting documentation. The authors make no claims     *
//* about the suitability of this software for any purpose. It is          *
//* provided "as is" without express or implied warranty.                  *
//**************************************************************************

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

#include "AliHLTPluginBase.h"
#include "AliHLTSystem.h"
#include "AliHLTDataBuffer.h"

/** ROOT macro for the implementation of ROOT specific class methods */
ClassImp(AliHLTPluginBase)

AliHLTPluginBase::AliHLTPluginBase()
{
  // see header file for class documentation
  // or
  // refer to README to build package
  // or
  // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
  fNofInstances++;
}

AliHLTPluginBase::~AliHLTPluginBase()
{
  // see header file for class documentation
  if (--fNofInstances<=0) {
    delete fpSystem;
    fpSystem=NULL;

    // 2010-04-07 not sure whether this is the best place for
    // the global cleanup of memory pages. In case of AliReconstruction
    // there is no cleanup method for the reconstructor plugins. They
    // are just deleted at the end.
    // However, here we can assume that some global cleanup takes place
    // when we arrive at this point.
    AliHLTDataBuffer::AliHLTRawPage::GlobalClean();
  }
}

void AliHLTPluginBase::InitInstance()
{
  // see header file for class documentation
  if (!fpSystem) fpSystem=new AliHLTSystem;
}

AliHLTSystem* AliHLTPluginBase::GetInstance()
{
  // see header file for class documentation
  if (!fpSystem) InitInstance();
  return fpSystem;
}


AliHLTSystem* AliHLTPluginBase::fpSystem=NULL;

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