]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/BASE/AliHLTTask.h
Corrected pragma: no need for newObj to access the target data members
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTTask.h
index 26cd21d77fb38d516d526b2eb3d45cee0c75d1fe..23d19fe8645cca4ff64eb37c151a450c44c9d75c 100644 (file)
@@ -3,21 +3,15 @@
 
 #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>
@@ -26,6 +20,8 @@
 #include "AliHLTLogging.h"
 #include "AliHLTDataBuffer.h"
 
+using std::vector;
+
 struct AliHLTComponentBlockData;
 class AliHLTComponent;
 class AliHLTComponentHandler;
@@ -207,7 +203,8 @@ class AliHLTTask : public TObject, public AliHLTLogging {
    * The @ref StartRun method must be called before.
    */
   int ProcessTask(Int_t eventNo, AliHLTUInt32_t eventType,
-                 AliHLTUInt64_t trgMask, AliHLTUInt32_t timestamp);
+                 AliHLTTriggerMask_t trgMask, AliHLTUInt32_t timestamp,
+                 AliHLTUInt32_t participatingDetectors = 0);
 
   /**
    * Determine the number of matching data block between the component and the
@@ -251,11 +248,27 @@ class AliHLTTask : public TObject, public AliHLTLogging {
   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
@@ -329,7 +342,7 @@ class AliHLTTask : public TObject, public AliHLTLogging {
    */
   vector<AliHLTComponentBlockData> fBlockDataArray;               //! transient
 
-  ClassDef(AliHLTTask, 2);
+  ClassDef(AliHLTTask, 0);
 };
 
 #endif