]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLTDumpTask.h
adding USE_DLOPEN option for HLT
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDumpTask.h
CommitLineData
8b0b58e2 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 */
28class 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