// $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 <Matthias.Richter@ift.uib.no> *
- * Timm Steinbeck <timm@kip.uni-heidelberg.de> *
- * for The ALICE Off-line Project. *
+ * Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
+ * Timm Steinbeck <timm@kip.uni-heidelberg.de> *
+ * 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 *
// 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<AliHLTComponentBlockData>& 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<AliHLTUInt8_t*>(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<AliHLTComponentBlockData>& /*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<AliHLTComponentBlockData> 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;
}