]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/BASE/AliHLTTask.h
Ignoring temporary files
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTTask.h
index c6d6bd0245c7fa504c1f2874144fd9100cc01dba..04e91f4aefd49f5c790cbde5e0c9b0d9a6042cd8 100644 (file)
@@ -1,8 +1,10 @@
+//-*- Mode: C++ -*-
 // $Id$
 
 #ifndef ALIHLTTASK_H
 #define ALIHLTTASK_H
-/* 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.                         *
  * See cxx source for full Copyright notice                               */
 
 /** @file   AliHLTTask.h
     @brief  base class for HLT tasks
 */
 
-#include <cerrno>
+// see below for class documentation
+// or
+// refer to README to build package
+// or
+// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
+
+#include <vector>
 #include <TObject.h>
 #include <TList.h>
 #include "AliHLTDataTypes.h"
 struct AliHLTComponentBlockData;
 class AliHLTComponent;
 class AliHLTComponentHandler;
+class AliHLTConfiguration;
+class AliHLTTask;
+
+typedef vector<AliHLTTask*> AliHLTTaskPList;
 
 /******************************************************************************/
 
@@ -51,10 +63,6 @@ class AliHLTTask : public TObject, public AliHLTLogging {
       @param pConf pointer to configuration descriptor
    */
   AliHLTTask(AliHLTConfiguration* pConf);
-  /** not a valid copy constructor, defined according to effective C++ style */
-  AliHLTTask(const AliHLTTask&);
-  /** not a valid assignment op, but defined according to effective C++ style */
-  AliHLTTask& operator=(const AliHLTTask&);
   /** destructor */
   virtual ~AliHLTTask();
 
@@ -218,12 +226,10 @@ class AliHLTTask : public TObject, public AliHLTLogging {
    * returns the number of blocks which would be prepared in case the target
    * array is big enough.
    * @param pConsumerTask   the task which subscribes to the data
-   * @param arrayBlockDesc  pointer to block descriptor to be filled
-   * @param iArraySize      size of the block descriptor array
+   * @param blockDescList   block descriptor list to be filled
    * @return number of matching data blocks, negative error code if failed
    */
-  int Subscribe(const AliHLTTask* pConsumerTask,
-               AliHLTComponentBlockData* arrayBlockDesc, int iArraySize);
+  int Subscribe(const AliHLTTask* pConsumerTask, AliHLTComponentBlockDataList& blockDescList);
 
   /**
    * Release a block descriptor.
@@ -269,6 +275,11 @@ class AliHLTTask : public TObject, public AliHLTLogging {
   int GetNofSources() const {return fListDependencies.GetSize();}
 
  private:
+  /** prohibited copy constructor */
+  AliHLTTask(const AliHLTTask&);
+  /** prohibited assignment operator */
+  AliHLTTask& operator=(const AliHLTTask&);
+
   /** the configuration descriptor (external pointer) */
   AliHLTConfiguration* fpConfiguration;                           //! transient
   /** the component described by this task (created and deleted internally) */
@@ -285,11 +296,9 @@ class AliHLTTask : public TObject, public AliHLTLogging {
    * @ref AliHLTComponent::ProcessEvent method. 
    * Filled through subscription to source tasks (@ref Subscribe).
    */
-  AliHLTComponentBlockData* fpBlockDataArray;                     //! transient
-  /** size of the block data array */
-  int fBlockDataArraySize;                                        // see above
+  vector<AliHLTComponentBlockData> fBlockDataArray;               //! transient
 
-  ClassDef(AliHLTTask, 1);
+  ClassDef(AliHLTTask, 2);
 };
 
 #endif