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   AliHLTOUTTask.cxx
    @author Matthias Richter
    @date   
    @brief  A special HLTOUT sibling working as a data sink in chains
*/

#include "AliHLTOUTTask.h"

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

AliHLTOUTTask::AliHLTOUTTask(const char* chains)
  :
  AliHLTOUT(),
  AliHLTDumpTask(chains)
{ 
  // see header file for class documentation
  // or
  // refer to README to build package
  // or
  // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
}

AliHLTOUTTask::~AliHLTOUTTask()
{
  // see header file for class documentation
}

int AliHLTOUTTask::GenerateIndex()
{
  // see header file for class documentation
  int iResult=0;
  const AliHLTComponentBlockDataList& list=GetDataBlocks();
  for (unsigned int i=0; i<list.size(); i++) {
    AliHLTOUTBlockDescriptor desc(list[i].fDataType, list[i].fSpecification, i, this);
    //HLTDebug("adding block %d: %s %#x", i, AliHLTComponent::DataType2Text(list[i].fDataType).c_str(), list[i].fSpecification);
    iResult=AddBlockDescriptor(desc);
  }
  return iResult;
}

int AliHLTOUTTask::GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer, 
				 AliHLTUInt32_t& size)
{
  // see header file for class documentation
  int iResult=0;
  const AliHLTComponentBlockDataList& list=GetDataBlocks();
  if (index>=list.size()) return -ENOENT;
  pBuffer=reinterpret_cast<AliHLTUInt8_t*>(list[index].fPtr);
  size=list[index].fSize;
  return iResult;
}

AliHLTOUT::AliHLTOUTByteOrder AliHLTOUTTask::CheckBlockByteOrder(AliHLTUInt32_t /*index*/)
{
  // see header file for class documentation
  return kInvalidByteOrder;
}

int AliHLTOUTTask::CheckBlockAlignment(AliHLTUInt32_t /*index*/, AliHLTOUT::AliHLTOUTDataType /*type*/)
{
  // see header file for class documentation
  int iResult=0;
  return iResult;
}

int AliHLTOUTTask::ResetInput()
{
  // see header file for class documentation
  return ReleaseDataBlocks();
}
 AliHLTOUTTask.cxx:1
 AliHLTOUTTask.cxx:2
 AliHLTOUTTask.cxx:3
 AliHLTOUTTask.cxx:4
 AliHLTOUTTask.cxx:5
 AliHLTOUTTask.cxx:6
 AliHLTOUTTask.cxx:7
 AliHLTOUTTask.cxx:8
 AliHLTOUTTask.cxx:9
 AliHLTOUTTask.cxx:10
 AliHLTOUTTask.cxx:11
 AliHLTOUTTask.cxx:12
 AliHLTOUTTask.cxx:13
 AliHLTOUTTask.cxx:14
 AliHLTOUTTask.cxx:15
 AliHLTOUTTask.cxx:16
 AliHLTOUTTask.cxx:17
 AliHLTOUTTask.cxx:18
 AliHLTOUTTask.cxx:19
 AliHLTOUTTask.cxx:20
 AliHLTOUTTask.cxx:21
 AliHLTOUTTask.cxx:22
 AliHLTOUTTask.cxx:23
 AliHLTOUTTask.cxx:24
 AliHLTOUTTask.cxx:25
 AliHLTOUTTask.cxx:26
 AliHLTOUTTask.cxx:27
 AliHLTOUTTask.cxx:28
 AliHLTOUTTask.cxx:29
 AliHLTOUTTask.cxx:30
 AliHLTOUTTask.cxx:31
 AliHLTOUTTask.cxx:32
 AliHLTOUTTask.cxx:33
 AliHLTOUTTask.cxx:34
 AliHLTOUTTask.cxx:35
 AliHLTOUTTask.cxx:36
 AliHLTOUTTask.cxx:37
 AliHLTOUTTask.cxx:38
 AliHLTOUTTask.cxx:39
 AliHLTOUTTask.cxx:40
 AliHLTOUTTask.cxx:41
 AliHLTOUTTask.cxx:42
 AliHLTOUTTask.cxx:43
 AliHLTOUTTask.cxx:44
 AliHLTOUTTask.cxx:45
 AliHLTOUTTask.cxx:46
 AliHLTOUTTask.cxx:47
 AliHLTOUTTask.cxx:48
 AliHLTOUTTask.cxx:49
 AliHLTOUTTask.cxx:50
 AliHLTOUTTask.cxx:51
 AliHLTOUTTask.cxx:52
 AliHLTOUTTask.cxx:53
 AliHLTOUTTask.cxx:54
 AliHLTOUTTask.cxx:55
 AliHLTOUTTask.cxx:56
 AliHLTOUTTask.cxx:57
 AliHLTOUTTask.cxx:58
 AliHLTOUTTask.cxx:59
 AliHLTOUTTask.cxx:60
 AliHLTOUTTask.cxx:61
 AliHLTOUTTask.cxx:62
 AliHLTOUTTask.cxx:63
 AliHLTOUTTask.cxx:64
 AliHLTOUTTask.cxx:65
 AliHLTOUTTask.cxx:66
 AliHLTOUTTask.cxx:67
 AliHLTOUTTask.cxx:68
 AliHLTOUTTask.cxx:69
 AliHLTOUTTask.cxx:70
 AliHLTOUTTask.cxx:71
 AliHLTOUTTask.cxx:72
 AliHLTOUTTask.cxx:73
 AliHLTOUTTask.cxx:74
 AliHLTOUTTask.cxx:75
 AliHLTOUTTask.cxx:76
 AliHLTOUTTask.cxx:77
 AliHLTOUTTask.cxx:78
 AliHLTOUTTask.cxx:79
 AliHLTOUTTask.cxx:80
 AliHLTOUTTask.cxx:81
 AliHLTOUTTask.cxx:82
 AliHLTOUTTask.cxx:83
 AliHLTOUTTask.cxx:84
 AliHLTOUTTask.cxx:85
 AliHLTOUTTask.cxx:86
 AliHLTOUTTask.cxx:87
 AliHLTOUTTask.cxx:88
 AliHLTOUTTask.cxx:89