X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2FBASE%2FAliHLTProcessor.cxx;h=619e0df8d9bd038aa11b9a0f748add27d1b1ca4e;hb=fb329096f365bfd0e8d7254354f3fadfb7b24be6;hp=abb2bba281ec043a4442d5266be16401ae57ed70;hpb=70ed7d013f0910a0b04a00e182ef99fac44a89eb;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/BASE/AliHLTProcessor.cxx b/HLT/BASE/AliHLTProcessor.cxx index abb2bba281e..619e0df8d9b 100644 --- a/HLT/BASE/AliHLTProcessor.cxx +++ b/HLT/BASE/AliHLTProcessor.cxx @@ -1,11 +1,12 @@ // $Id$ /************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * This file is property of and copyright by the ALICE HLT Project * + * ALICE Experiment at CERN, All rights reserved. * * * - * Authors: Matthias Richter * - * Timm Steinbeck * - * for The ALICE Off-line Project. * + * Primary Authors: Matthias Richter * + * Timm Steinbeck * + * 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 * @@ -45,35 +46,50 @@ AliHLTProcessor::~AliHLTProcessor() // see header file for class documentation } -int AliHLTProcessor::Init( AliHLTComponentEnvironment* environ, void* environ_param, int argc, const char** argv ) +int AliHLTProcessor::DoProcessing( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, + AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, + AliHLTUInt32_t& size, + vector& outputBlocks, + AliHLTComponentEventDoneData*& edd ) { // see header file for class documentation int iResult=0; - iResult=AliHLTComponent::Init(environ, environ_param, argc, argv); + ReleaseEventDoneData(); + + iResult=DoEvent(evtData, blocks, trigData, outputPtr, size, outputBlocks); + + edd = NULL; + AliHLTComponentEventDoneData* eddTmp = GetCurrentEventDoneData(); + if (eddTmp) { + int ret = GetEventDoneData(eddTmp->fDataSize, &edd); + if (ret) { + HLTError( "Cannot get event done data of %u bytes for event %lu: %s (%d)", + eddTmp->fDataSize, evtData.fEventID, strerror(ret), ret ); + return -ENOMEM; + } + edd->fStructSize = sizeof(AliHLTComponentEventDoneData); + edd->fDataSize = eddTmp->fDataSize; + edd->fData = reinterpret_cast(edd)+edd->fStructSize; + memcpy( edd->fData, eddTmp->fData, eddTmp->fDataSize ); + } return iResult; } -int AliHLTProcessor::Deinit() +int AliHLTProcessor::DoEvent( const AliHLTComponentEventData& evtData, + const AliHLTComponentBlockData* /*blocks*/, + AliHLTComponentTriggerData& trigData, + AliHLTUInt8_t* /*outputPtr*/, + AliHLTUInt32_t& size, + vector& /*outputBlocks*/ ) { - // see header file for class documentation - int iResult=0; - iResult=AliHLTComponent::Deinit(); - return iResult; + // we just forward to the high level method, all other parameters already + // have been stored internally + size=0; + return DoEvent(evtData, trigData); } -int AliHLTProcessor::DoProcessing( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, - AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, - AliHLTUInt32_t& size, AliHLTUInt32_t& outputBlockCnt, - AliHLTComponentBlockData*& outputBlocks, - AliHLTComponentEventDoneData*& edd ) +int AliHLTProcessor::DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/) { - // see header file for class documentation - int iResult=0; - vector blockData; - iResult=DoEvent(evtData, blocks, trigData, outputPtr, size, blockData); - if (iResult>=0) { - iResult=MakeOutputDataBlockList(blockData, &outputBlockCnt, &outputBlocks); - } - edd = NULL; - return iResult; + HLTFatal("no processing method implemented"); + return -ENOSYS; }