#ifndef ALIHLTTASK_H
#define ALIHLTTASK_H
-/* This file is property of and copyright by the ALICE HLT Project *
- * ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/** @file AliHLTTask.h
- @author Matthias Richter
- @date
- @brief base class for HLT tasks
-*/
-
-// see below for class documentation
-// or
-// refer to README to build package
-// or
-// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+///* This file is property of and copyright by the *
+///* ALICE Experiment at CERN, All rights reserved. *
+///* See cxx source for full Copyright notice *
+
+/// @file AliHLTTask.h
+/// @author Matthias Richter
+/// @date
+/// @brief base class for HLT tasks
+///
#include <vector>
#include <TObject.h>
#include "AliHLTLogging.h"
#include "AliHLTDataBuffer.h"
+using std::vector;
+
struct AliHLTComponentBlockData;
class AliHLTComponent;
class AliHLTComponentHandler;
* processing, the data blocks are released. <br>
* The @ref StartRun method must be called before.
*/
- int ProcessTask(Int_t eventNo, AliHLTUInt32_t eventType=gkAliEventTypeData);
+ int ProcessTask(Int_t eventNo, AliHLTUInt32_t eventType,
+ AliHLTTriggerMask_t trgMask, AliHLTUInt32_t timestamp,
+ AliHLTUInt32_t participatingDetectors = 0);
/**
* Determine the number of matching data block between the component and the
int Release(AliHLTComponentBlockData* pBlockDesc,
const AliHLTTask* pConsumerTask);
+ /**
+ * Cleanup function if the event processing is in error state.
+ * In order to handle in particular forwarded segments in the source
+ * tasks correctly the tasks of the chain have to subscribe to the
+ * parents even if the event is already in error state. This function
+ * is used instead of ProcessTask.
+ * Subscribes to all source tasks and releases them with out any event
+ * processing
+ */
+ int SubscribeSourcesAndSkip();
+
/**
* Print the status of the task with component, dependencies and targets.
*/
void PrintStatus();
+ /**
+ * Overloaded from TObject
+ */
+ void Print(const char* options) const;
+
/**
* Search task dependency list recursively to find a dependency.
* @param id id of the task to search for
*/
int GetNofSources() const {return fListDependencies.GetSize();}
+ /**
+ * Customized logging function.
+ * The task id and pointer is added at the beginning of each message.
+ */
+ int LoggingVarargs(AliHLTComponentLogSeverity severity,
+ const char* originClass, const char* originFunc,
+ const char* file, int line, ... ) const;
+
private:
/** prohibited copy constructor */
AliHLTTask(const AliHLTTask&);
*/
vector<AliHLTComponentBlockData> fBlockDataArray; //! transient
- ClassDef(AliHLTTask, 2);
+ ClassDef(AliHLTTask, 0);
};
#endif