]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/BASE/AliHLTSystem.h
- AliHLTSystem: proper cleanup of HLTOUT sub-collection of local
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTSystem.h
index b64b7b9c26164504c606d4099b3fad64928b7170..81ac42b95bd6e2f441f40c845a91e6cbacd3d871 100644 (file)
@@ -29,6 +29,7 @@ class AliHLTConfigurationHandler;
 class AliHLTTask;
 class AliHLTOUT;
 class AliHLTOUTTask;
+class AliHLTControlTask;
 class AliRunLoader;
 class AliRawReader;
 class AliESDEvent;
@@ -48,7 +49,7 @@ class TStopwatch;
 class AliHLTSystem : public AliHLTLogging {
  public:
   /** default constructor */
-  AliHLTSystem(AliHLTComponentLogSeverity loglevel=kHLTLogDefault);
+  AliHLTSystem(AliHLTComponentLogSeverity loglevel=kHLTLogDefault, const char* name="");
   /** destructor */
   virtual ~AliHLTSystem();
 
@@ -118,6 +119,17 @@ class AliHLTSystem : public AliHLTLogging {
    */
   int InsertTask(AliHLTTask* pTask);
 
+  /**
+   * Add HLTOUT task to the end of the task list.
+   * If one of the specified chains has output, an AliHLTOUTTask is
+   * added which controls the output. All other chains are removed from the
+   * AliHLTOUTTask input.
+   * @return 0 if no task has been added, 1 if task has been added
+   */
+  int AddHLTOUTTask(const char* chains);
+
+  AliHLTOUTTask* GetHLTOUTTask() const {return fpHLTOUTTask;}
+
   /**
    * Find a task with an id.
    * @param id       CONFIGURATION id (not a COMPONENT id!)
@@ -475,7 +487,13 @@ class AliHLTSystem : public AliHLTLogging {
   /** active HLTOUT task for the reconstruction */
   AliHLTOUTTask* fpHLTOUTTask;                                     //!transient
 
-  ClassDef(AliHLTSystem, 10);
+  /** special task to publish the control events */
+  AliHLTControlTask* fpControlTask;                                //!transient
+
+  /** name of this system instance */
+  TString fName;                                                   //!transient
+
+  ClassDef(AliHLTSystem, 12);
 };
 
 #endif