ROOT logo
// $Id$

//**************************************************************************
//* This file is property of and copyright by the                          * 
//* 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   AliHLTDataSink.cxx
/// @author Matthias Richter
/// @date   
/// @brief  Base class implementation for HLT data source components.
///

#include "AliHLTDataSink.h"

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

AliHLTDataSink::AliHLTDataSink()
{ 
  // Base class of HLT data sink components.
  // The class provides a common interface for the implementation of HLT data
  // sink components.
  // Sink components do not produce any output consequently the processing
  // function is called 'DumpEvent'.
}

AliHLTDataSink::~AliHLTDataSink()
{ 
  // destructor
}

AliHLTComponentDataType AliHLTDataSink::GetOutputDataType()
{
  // default method as sink components do not produce output
  AliHLTComponentDataType dt =
    {sizeof(AliHLTComponentDataType),
     kAliHLTVoidDataTypeID,
     kAliHLTVoidDataOrigin};
  return dt;
}

void AliHLTDataSink::GetOutputDataSize( unsigned long& constBase, double& inputMultiplier )
{
  // default method as sink components do not produce output
  constBase=0;
  inputMultiplier=0;
}

int AliHLTDataSink::DoProcessing( const AliHLTComponentEventData& evtData,
				  const AliHLTComponentBlockData* blocks, 
				  AliHLTComponentTriggerData& trigData,
				  AliHLTUInt8_t* outputPtr, 
				  AliHLTUInt32_t& size,
				  AliHLTComponentBlockDataList& outputBlocks,
				  AliHLTComponentEventDoneData*& edd )
{
  // Processing method, calls child's DumpEvent
  int iResult=0;
  if (outputPtr==NULL
      && size==0 
      && edd==NULL) {
    // this is currently just to get rid of the warning "unused parameter"
  }
  outputBlocks.clear();
  iResult=DumpEvent(evtData, blocks, trigData);
  return iResult;
}

int AliHLTDataSink::DumpEvent( const AliHLTComponentEventData& evtData,
			       const AliHLTComponentBlockData* /*blocks*/, 
			       AliHLTComponentTriggerData& trigData )
{
  // we just forward to the high level method, all other parameters already
  // have been stored internally
  return DumpEvent(evtData, trigData);
}

int AliHLTDataSink::DumpEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/)
{
  // default method: one of DumpEvent methods must be implemented
  HLTFatal("no processing method implemented");
  return -ENOSYS;
}
 AliHLTDataSink.cxx:1
 AliHLTDataSink.cxx:2
 AliHLTDataSink.cxx:3
 AliHLTDataSink.cxx:4
 AliHLTDataSink.cxx:5
 AliHLTDataSink.cxx:6
 AliHLTDataSink.cxx:7
 AliHLTDataSink.cxx:8
 AliHLTDataSink.cxx:9
 AliHLTDataSink.cxx:10
 AliHLTDataSink.cxx:11
 AliHLTDataSink.cxx:12
 AliHLTDataSink.cxx:13
 AliHLTDataSink.cxx:14
 AliHLTDataSink.cxx:15
 AliHLTDataSink.cxx:16
 AliHLTDataSink.cxx:17
 AliHLTDataSink.cxx:18
 AliHLTDataSink.cxx:19
 AliHLTDataSink.cxx:20
 AliHLTDataSink.cxx:21
 AliHLTDataSink.cxx:22
 AliHLTDataSink.cxx:23
 AliHLTDataSink.cxx:24
 AliHLTDataSink.cxx:25
 AliHLTDataSink.cxx:26
 AliHLTDataSink.cxx:27
 AliHLTDataSink.cxx:28
 AliHLTDataSink.cxx:29
 AliHLTDataSink.cxx:30
 AliHLTDataSink.cxx:31
 AliHLTDataSink.cxx:32
 AliHLTDataSink.cxx:33
 AliHLTDataSink.cxx:34
 AliHLTDataSink.cxx:35
 AliHLTDataSink.cxx:36
 AliHLTDataSink.cxx:37
 AliHLTDataSink.cxx:38
 AliHLTDataSink.cxx:39
 AliHLTDataSink.cxx:40
 AliHLTDataSink.cxx:41
 AliHLTDataSink.cxx:42
 AliHLTDataSink.cxx:43
 AliHLTDataSink.cxx:44
 AliHLTDataSink.cxx:45
 AliHLTDataSink.cxx:46
 AliHLTDataSink.cxx:47
 AliHLTDataSink.cxx:48
 AliHLTDataSink.cxx:49
 AliHLTDataSink.cxx:50
 AliHLTDataSink.cxx:51
 AliHLTDataSink.cxx:52
 AliHLTDataSink.cxx:53
 AliHLTDataSink.cxx:54
 AliHLTDataSink.cxx:55
 AliHLTDataSink.cxx:56
 AliHLTDataSink.cxx:57
 AliHLTDataSink.cxx:58
 AliHLTDataSink.cxx:59
 AliHLTDataSink.cxx:60
 AliHLTDataSink.cxx:61
 AliHLTDataSink.cxx:62
 AliHLTDataSink.cxx:63
 AliHLTDataSink.cxx:64
 AliHLTDataSink.cxx:65
 AliHLTDataSink.cxx:66
 AliHLTDataSink.cxx:67
 AliHLTDataSink.cxx:68
 AliHLTDataSink.cxx:69
 AliHLTDataSink.cxx:70
 AliHLTDataSink.cxx:71
 AliHLTDataSink.cxx:72
 AliHLTDataSink.cxx:73
 AliHLTDataSink.cxx:74
 AliHLTDataSink.cxx:75
 AliHLTDataSink.cxx:76
 AliHLTDataSink.cxx:77
 AliHLTDataSink.cxx:78
 AliHLTDataSink.cxx:79
 AliHLTDataSink.cxx:80
 AliHLTDataSink.cxx:81
 AliHLTDataSink.cxx:82
 AliHLTDataSink.cxx:83
 AliHLTDataSink.cxx:84
 AliHLTDataSink.cxx:85
 AliHLTDataSink.cxx:86
 AliHLTDataSink.cxx:87
 AliHLTDataSink.cxx:88
 AliHLTDataSink.cxx:89
 AliHLTDataSink.cxx:90
 AliHLTDataSink.cxx:91
 AliHLTDataSink.cxx:92
 AliHLTDataSink.cxx:93
 AliHLTDataSink.cxx:94
 AliHLTDataSink.cxx:95