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 AliHLTHOMERLibManager;
27 * @class AliHLTOUTHomerBuffer
28 * Handler of HLTOUT data for buffer input.
30 class AliHLTOUTHomerBuffer : public AliHLTOUT {
33 AliHLTOUTHomerBuffer(const AliHLTUInt8_t* pBuffer, int size);
35 virtual ~AliHLTOUTHomerBuffer();
39 * Step trough data blocks of a HOMER reader and generate index.
41 int ScanReader(AliHLTHOMERReader* pReader, AliHLTUInt32_t majorIndex=0);
43 /** dynamic loader manager for HOMER library */
44 AliHLTHOMERLibManager* fpManager; //!transient
47 /** standard constructor prohibited */
48 AliHLTOUTHomerBuffer();
49 /** copy constructor prohibited */
50 AliHLTOUTHomerBuffer(const AliHLTOUTHomerBuffer&);
51 /** assignment operator prohibited */
52 AliHLTOUTHomerBuffer& operator=(const AliHLTOUTHomerBuffer&);
55 * Generate the index of the HLTOUT data from the data buffer.
57 virtual int GenerateIndex();
61 * @param index [in] index of the block
62 * @param pBuffer [out] buffer of the selected data block
63 * @param size [out] size of the selected data block
65 virtual int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer,
66 AliHLTUInt32_t& size);
69 * Check byte order of data block
71 virtual AliHLTOUTByteOrder_t CheckBlockByteOrder(AliHLTUInt32_t index);
74 * Check alignment of data block
76 virtual int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType_t type);
79 const AliHLTUInt8_t* fpBuffer; //! transient
81 /** size of data buffer */
82 int fSize; //! transient
84 /** instance of the HOMER reader */
85 AliHLTHOMERReader* fpReader; //!transient
87 ClassDef(AliHLTOUTHomerBuffer, 0)