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 */
10 /** @file AliHLTOUTHomerBuffer.h
11 @author Matthias Richter
13 @brief HLTOUT data wrapper for a data buffer.
16 #include "AliHLTOUT.h"
17 #include "AliHLTLogging.h"
19 class AliHLTHOMERReader;
20 class AliHLTMonitoringReader;
21 class AliHLTHOMERLibManager;
24 * @class AliHLTOUTHomerBuffer
25 * Handler of HLTOUT data for buffer input.
27 class AliHLTOUTHomerBuffer : public AliHLTOUT, public AliHLTLogging {
30 AliHLTOUTHomerBuffer(const AliHLTUInt8_t* pBuffer, int size);
32 virtual ~AliHLTOUTHomerBuffer();
36 * Step trough data blocks of a HOMER reader and generate index.
38 int ScanReader(AliHLTMonitoringReader* pReader, AliHLTUInt32_t majorIndex=0);
40 /** dynamic loader manager for HOMER library */
41 AliHLTHOMERLibManager* fpManager; //!transient
44 /** standard constructor prohibited */
45 AliHLTOUTHomerBuffer();
46 /** copy constructor prohibited */
47 AliHLTOUTHomerBuffer(const AliHLTOUTHomerBuffer&);
48 /** assignment operator prohibited */
49 AliHLTOUTHomerBuffer& operator=(const AliHLTOUTHomerBuffer&);
52 * Generate the index of the HLTOUT data from the data buffer.
54 virtual int GenerateIndex();
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
62 virtual int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer,
63 AliHLTUInt32_t& size);
66 * Check byte order of data block
68 virtual AliHLTOUTByteOrder CheckBlockByteOrder(AliHLTUInt32_t index);
71 * Check alignment of data block
73 virtual int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType type);
76 const AliHLTUInt8_t* fpBuffer; //! transient
78 /** size of data buffer */
79 int fSize; //! transient
81 /** instance of the HOMER reader */
82 AliHLTHOMERReader* fpReader; //!transient
84 ClassDef(AliHLTOUTHomerBuffer, 0)