a1f52c0812132ae99a02b76b54155ae776dcdbe4
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTOUTHomerBuffer.h
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
23 class HOMERReader;
24
25 /**
26  * @class AliHLTOUTHomerBuffer
27  * Handler of HLTOUT data for buffer input.
28  */
29 class AliHLTOUTHomerBuffer : public AliHLTOUT {
30  public:
31   /** constructor */
32   AliHLTOUTHomerBuffer(const AliHLTUInt8_t* pBuffer);
33   /** destructor */
34   virtual ~AliHLTOUTHomerBuffer();
35
36  protected:
37
38  private:
39   /** standard constructor prohibited */
40   AliHLTOUTHomerBuffer();
41   /** copy constructor prohibited */
42   AliHLTOUTHomerBuffer(const AliHLTOUTHomerBuffer&);
43   /** assignment operator prohibited */
44   AliHLTOUTHomerBuffer& operator=(const AliHLTOUTHomerBuffer&);
45
46   /**
47    * Generate the index of the HLTOUT data from the data buffer.
48    */
49   virtual int GenerateIndex();
50
51   /**
52    * Get the data buffer
53    * @param index   [in]  index of the block
54    * @param pBuffer [out] buffer of the selected data block
55    * @param size    [out] size of the selected data block
56    */
57   virtual int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer, 
58                             AliHLTUInt32_t& size);
59
60   /** data buffer */
61   const AliHLTUInt8_t* fpBuffer; //! transient
62
63   /** instance of the HOMER reader */
64   HOMERReader* fpReader;  //!transient
65
66   ClassDef(AliHLTOUTHomerBuffer, 0)
67 };
68 #endif