]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLTOUTTask.h
Merge branch 'master' into flatdev
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTOUTTask.h
CommitLineData
7131ea63 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIHLTOUTTASK_H
4#define ALIHLTOUTTASK_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 AliHLTOUTTask.h
10 @author Matthias Richter
11 @date
12 @brief A special HLTOUT sibling working as a data sink in chains
13*/
14
15#include "AliHLTOUT.h"
8b0b58e2 16#include "AliHLTDumpTask.h"
7131ea63 17
18/**
19 * @class AliHLTOUTTask
20 * A special HLTOUT sibling implementing AliHLTDataSink functionality in
21 * order to be run at the end of a reconstruction chain and generation of
22 * an HLTOUT sub-collection.
23 *
f3c1d403 24 * The constructor takes the chains as a blank separated list of chain ids.
8b0b58e2 25 *
26 * @ingroup alihlt_system
7131ea63 27 */
8b0b58e2 28class AliHLTOUTTask : public AliHLTOUT, public AliHLTDumpTask {
7131ea63 29 public:
30 /** constructor */
31 AliHLTOUTTask(const char* chains);
32 /** standard destructor */
33 virtual ~AliHLTOUTTask();
34
35 protected:
36
37 private:
38 /** standard constructor prohibited */
39 AliHLTOUTTask();
40 /** copy constructor prohibited */
41 AliHLTOUTTask(const AliHLTOUTTask&);
42 /** assignment operator prohibited */
43 AliHLTOUTTask& operator=(const AliHLTOUTTask&);
44
7131ea63 45 /**
46 * Generate the index of the HLTOUT data.
47 * Must be implemented by the child classes.
48 */
49 int GenerateIndex();
50
51 /**
52 * Cleanup and reset the data input.
53 */
54 int ResetInput();
55
56 /**
57 * Get the data buffer
9bb806cd 58 * @param [in] index index of the block
59 * @param [out] pBuffer buffer of the selected data block
60 * @param [out] size size of the selected data block
7131ea63 61 */
62 int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer,
8b0b58e2 63 AliHLTUInt32_t& size);
7131ea63 64
65 /**
66 * Check byte order of data block
67 */
68 AliHLTOUTByteOrder CheckBlockByteOrder(AliHLTUInt32_t index);
69
70 /**
71 * Check alignment of data block
72 */
73 int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType type);
74
8b0b58e2 75 ClassDef(AliHLTOUTTask, 1)
7131ea63 76};
77#endif