]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ACORDE/AliACORDERawStream.h
Completely Updated (Mario Sitta)
[u/mrichter/AliRoot.git] / ACORDE / AliACORDERawStream.h
1 #ifndef ALIACORDERAWSTREAM_H
2 #define ALIACORDERAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliACORDERawStream.h 20210 2007-08-18 08:41:30Z hristov $ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  Reads ACORDE DDL raw data from raw data stream                           //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include "TObject.h"
15
16 class AliRawReader;
17
18 class AliACORDERawStream : public TObject {
19
20  public:
21
22   AliACORDERawStream(AliRawReader*);
23   virtual ~AliACORDERawStream();
24 //  AliACORDERawStream &operator=(const AliACORDERawStream &r);
25
26   virtual void    Reset();
27   virtual Bool_t  Next();
28
29   Int_t           DataSize() const { return fDataSize; }
30   UInt_t          GetWord(Int_t index) const;
31
32   enum EACORDERawStreamError {
33       kRawDataSizeErr = 1
34   };
35
36  private:
37
38   UInt_t          GetNextWord();
39   UShort_t        GetNextShort();
40
41
42   AliRawReader*   fRawReader;    // object for reading the raw data
43   Int_t           fPosition;     // current position in the raw-data payload
44   UChar_t*        fData;         // pointer to raw data payload
45
46   Int_t           fDataSize;     // data size
47
48   UInt_t          fWord[4];      // data vector
49
50   ClassDef(AliACORDERawStream,0) // class for reading ACORDE DDL raw data
51
52 };
53
54 typedef AliACORDERawStream AliCRTRawStream; // for backward compatibility
55
56 #endif