]>
Commit | Line | Data |
---|---|---|
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 | 28 | class 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 | |
58 | * @param index [in] index of the block | |
59 | * @param pBuffer [out] buffer of the selected data block | |
60 | * @param size [out] size of the selected data block | |
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 |