]>
Commit | Line | Data |
---|---|---|
4de7334f | 1 | //-*- Mode: C++ -*- |
2 | // @(#) $Id$ | |
3 | ||
4 | #ifndef ALIHLTOUTHOMERBUFFER_H | |
5 | #define ALIHLTOUTHOMERBUFFER_H | |
6 | /* This file is property of and copyright by the ALICE HLT Project * | |
7 | * ALICE Experiment at CERN, All rights reserved. * | |
8 | * See cxx source for full Copyright notice */ | |
9 | ||
10 | /** @file AliHLTOUTHomerBuffer.h | |
11 | @author Matthias Richter | |
12 | @date | |
13 | @brief HLTOUT data wrapper for a data buffer. | |
14 | ||
15 | // see below for class documentation | |
16 | // or | |
17 | // refer to README to build package | |
18 | // or | |
19 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
20 | */ | |
21 | #include "AliHLTOUT.h" | |
22 | ||
049b43b2 | 23 | class AliHLTHOMERReader; |
a183f221 | 24 | class AliHLTMonitoringReader; |
049b43b2 | 25 | class AliHLTHOMERLibManager; |
4de7334f | 26 | |
27 | /** | |
28 | * @class AliHLTOUTHomerBuffer | |
29 | * Handler of HLTOUT data for buffer input. | |
30 | */ | |
31 | class AliHLTOUTHomerBuffer : public AliHLTOUT { | |
32 | public: | |
33 | /** constructor */ | |
049b43b2 | 34 | AliHLTOUTHomerBuffer(const AliHLTUInt8_t* pBuffer, int size); |
4de7334f | 35 | /** destructor */ |
36 | virtual ~AliHLTOUTHomerBuffer(); | |
37 | ||
38 | protected: | |
049b43b2 | 39 | /** |
40 | * Step trough data blocks of a HOMER reader and generate index. | |
41 | */ | |
a183f221 | 42 | int ScanReader(AliHLTMonitoringReader* pReader, AliHLTUInt32_t majorIndex=0); |
049b43b2 | 43 | |
44 | /** dynamic loader manager for HOMER library */ | |
45 | AliHLTHOMERLibManager* fpManager; //!transient | |
4de7334f | 46 | |
47 | private: | |
48 | /** standard constructor prohibited */ | |
49 | AliHLTOUTHomerBuffer(); | |
50 | /** copy constructor prohibited */ | |
51 | AliHLTOUTHomerBuffer(const AliHLTOUTHomerBuffer&); | |
52 | /** assignment operator prohibited */ | |
53 | AliHLTOUTHomerBuffer& operator=(const AliHLTOUTHomerBuffer&); | |
54 | ||
55 | /** | |
56 | * Generate the index of the HLTOUT data from the data buffer. | |
57 | */ | |
58 | virtual int GenerateIndex(); | |
59 | ||
60 | /** | |
61 | * Get the data buffer | |
62 | * @param index [in] index of the block | |
63 | * @param pBuffer [out] buffer of the selected data block | |
64 | * @param size [out] size of the selected data block | |
65 | */ | |
66 | virtual int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer, | |
67 | AliHLTUInt32_t& size); | |
68 | ||
049b43b2 | 69 | /** |
70 | * Check byte order of data block | |
71 | */ | |
13398559 | 72 | virtual AliHLTOUTByteOrder CheckBlockByteOrder(AliHLTUInt32_t index); |
049b43b2 | 73 | |
74 | /** | |
75 | * Check alignment of data block | |
76 | */ | |
13398559 | 77 | virtual int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType type); |
049b43b2 | 78 | |
4de7334f | 79 | /** data buffer */ |
80 | const AliHLTUInt8_t* fpBuffer; //! transient | |
81 | ||
049b43b2 | 82 | /** size of data buffer */ |
83 | int fSize; //! transient | |
84 | ||
4de7334f | 85 | /** instance of the HOMER reader */ |
049b43b2 | 86 | AliHLTHOMERReader* fpReader; //!transient |
4de7334f | 87 | |
88 | ClassDef(AliHLTOUTHomerBuffer, 0) | |
89 | }; | |
90 | #endif |