]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTDumpTask.h
Removing the lib files
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDumpTask.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTDUMPTASK_H
4 #define ALIHLTDUMPTASK_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /** @file   AliHLTDumpTask.h
10     @author Matthias Richter
11     @date   
12     @brief  Base class for data sinks with direct buffer access.
13 */
14
15 #include "AliHLTOUT.h"
16 #include "AliHLTTask.h"
17
18 /**
19  * @class AliHLTDumpTask
20  * A base class for data sinks without a processing component. Tasks of this
21  * type can be added at the end of the processing chain and allow direct
22  * access to the data blocks produced by the last components of the chain.
23  * 
24  * The constructor takes the chains as a blank separated list of chain ids.
25  *
26  * @ingroup alihlt_system
27  */
28 class AliHLTDumpTask : public AliHLTTask {
29  public:
30   /** constructor */
31   AliHLTDumpTask(const char* chains=NULL);
32   /** standard destructor */
33   virtual ~AliHLTDumpTask();
34
35   /**
36    * Set the parent reconstruction chains this task is going to subscribe to.
37    * @param chains    blank separated list of chain ids
38    */
39   int SetChains(const char* chains);
40
41   /**
42    * Get string of the source chains.
43    */
44   const char* GetSourceChains() const;
45
46   /**
47    * Get the list of data blocks.
48    * Subscribe to the publishers if not yet done and return pointer
49    * to block list.
50    */
51   const AliHLTComponentBlockDataList& GetDataBlocks();
52
53   /**
54    * Explicitly release data blocks.
55    */
56   int ReleaseDataBlocks();
57
58  protected:
59
60  private:
61   /** copy constructor prohibited */
62   AliHLTDumpTask(const AliHLTDumpTask&);
63   /** assignment operator prohibited */
64   AliHLTDumpTask& operator=(const AliHLTDumpTask&);
65
66   /**
67    * Custom initialization for child tasks.
68    * Create and init the dummy task.
69    */
70   int CustomInit(AliHLTComponentHandler* pCH);
71
72   /**
73    * Custom clean up for child tasks.
74    */
75   int CustomCleanup();
76
77   /** a dummy task to pretend existence of a consumer */
78   AliHLTTask* fpDummyTask; //!transient
79
80   /** the configuration for the dummy task */
81   AliHLTConfiguration* fpDummyConfiguration; //!transient
82
83   /** list of block descriptors of the output */
84   AliHLTComponentBlockDataList fBlocks;
85
86   ClassDef(AliHLTDumpTask, 0)
87 };
88 #endif