044cd2744d30365896a241adb90db19f967ec27a
[u/mrichter/AliRoot.git] / HLT / rec / AliRawReaderHLT.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id: AliRawReaderHLT.h,v 1.1 2007/10/29 19:01:06 richterm Exp $
3
4 #ifndef ALIRAWREADERHLT_H
5 #define ALIRAWREADERHLT_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   AliRawReaderHLT.h
11     @author Matthias Richter
12     @date   
13     @brief  AliRawReader implementation which replaces original input of
14             detectors with the appropriate HLT output.                    */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21
22 #include "AliRawReader.h"
23 #include "TString.h"
24
25 /**
26  * @class AliRawReaderHLT
27  * Handler of HLTOUT data for AliRawReader input.
28  */
29 class AliRawReaderHLT : public AliRawReader {
30  public:
31   /** constructor */
32   AliRawReaderHLT(AliRawReader* pParentReader, const char* options=NULL);
33   /** destructor */
34   virtual ~AliRawReaderHLT();
35
36   // interface methods of AliRawReader
37   UInt_t   GetType() const;
38   UInt_t   GetRunNumber() const;
39   const UInt_t* GetEventId() const;
40   const UInt_t* GetTriggerPattern() const;
41   const UInt_t* GetDetectorPattern() const;
42   const UInt_t* GetAttributes() const;
43   const UInt_t* GetSubEventAttributes() const;
44   UInt_t   GetLDCId() const;
45   UInt_t   GetGDCId() const;
46   UInt_t   GetTimestamp() const;
47
48   const UInt_t* GetEquipmentAttributes() const;
49   Int_t    GetEquipmentElementSize() const;
50   Int_t    GetEquipmentHeaderSize() const;
51
52   Int_t    GetEquipmentSize() const;
53   Int_t    GetEquipmentType() const;
54   Int_t    GetEquipmentId() const;
55   Bool_t   ReadHeader();
56   Bool_t   ReadNextData(UChar_t*& data);
57   Bool_t   ReadNextInt(UInt_t& data);
58   Bool_t   ReadNextShort(UShort_t& data);
59   Bool_t   ReadNextChar(UChar_t& data);
60   Bool_t   ReadNext(UChar_t* data, Int_t size);
61
62   Bool_t   Reset();
63
64   Bool_t   NextEvent();
65   Bool_t   RewindEvents();
66
67  protected:
68
69  private:
70   /** standard constructor prohibited */
71   AliRawReaderHLT();
72   /** copy constructor prohibited */
73   AliRawReaderHLT(const AliRawReaderHLT&);
74   /** assignment operator prohibited */
75   AliRawReaderHLT& operator=(const AliRawReaderHLT&);
76
77   /** the rawreader */
78   AliRawReader* fpParentReader; //!transient
79
80   /** options */
81   TString fOptions; //!transient
82   
83   ClassDef(AliRawReaderHLT, 0)
84 };
85
86 #define ALIHLTREC_LIBRARY                   "libHLTrec.so"
87 #define ALIHLTREC_LIBRARY_VERSION           0
88 #define ALIRAWREADERHLT_CREATE_INSTANCE     "AliRawReaderHLTCreateInstance"
89
90 #ifdef __cplusplus
91 extern "C" {
92 #endif
93   typedef AliRawReader* (*AliRawReaderHLTCreateInstance_t)(AliRawReader* pParentReader, const char* options);
94
95   /**
96    * Create an instance of the AliRawReader class
97    */
98   AliRawReader* AliRawReaderHLTCreateInstance(AliRawReader* pParentReader, const char* options);
99 #ifdef __cplusplus
100 }
101 #endif
102 #endif