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.
15 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 #include "AliHLTOUT.h"
23 class AliHLTHOMERReader;
24 class AliHLTMonitoringReader;
25 class AliHLTHOMERLibManager;
28 * @class AliHLTOUTHomerBuffer
29 * Handler of HLTOUT data for buffer input.
31 class AliHLTOUTHomerBuffer : public AliHLTOUT {
34 AliHLTOUTHomerBuffer(const AliHLTUInt8_t* pBuffer, int size);
36 virtual ~AliHLTOUTHomerBuffer();
40 * Step trough data blocks of a HOMER reader and generate index.
42 int ScanReader(AliHLTMonitoringReader* pReader, AliHLTUInt32_t majorIndex=0);
44 /** dynamic loader manager for HOMER library */
45 AliHLTHOMERLibManager* fpManager; //!transient
48 /** standard constructor prohibited */
49 AliHLTOUTHomerBuffer();
50 /** copy constructor prohibited */
51 AliHLTOUTHomerBuffer(const AliHLTOUTHomerBuffer&);
52 /** assignment operator prohibited */
53 AliHLTOUTHomerBuffer& operator=(const AliHLTOUTHomerBuffer&);
56 * Generate the index of the HLTOUT data from the data buffer.
58 virtual int GenerateIndex();
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
66 virtual int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer,
67 AliHLTUInt32_t& size);
70 * Check byte order of data block
72 virtual AliHLTOUTByteOrder CheckBlockByteOrder(AliHLTUInt32_t index);
75 * Check alignment of data block
77 virtual int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType type);
80 const AliHLTUInt8_t* fpBuffer; //! transient
82 /** size of data buffer */
83 int fSize; //! transient
85 /** instance of the HOMER reader */
86 AliHLTHOMERReader* fpReader; //!transient
88 ClassDef(AliHLTOUTHomerBuffer, 0)