Effective C++ mods
[u/mrichter/AliRoot.git] / RAW / AliRawEquipmentHeader.h
1 #ifndef ALIRAWEQUIPMENTHEADER_H
2 #define ALIRAWEQUIPMENTHEADER_H
3 // @(#)alimdc:$Name$:$Id$
4 // Author: Fons Rademakers  26/11/99
5
6 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 //////////////////////////////////////////////////////////////////////////
10 //                                                                      //
11 // AliRawEquipmentHeader                                                //
12 //                                                                      //
13 //////////////////////////////////////////////////////////////////////////
14
15 #ifndef ROOT_TObject
16 #include <TObject.h>
17 #endif
18
19
20 class AliRawEquipmentHeader : public TObject {
21
22 public:
23    AliRawEquipmentHeader();
24    ~AliRawEquipmentHeader() { }
25
26    void         *HeaderBegin() { return (void *) &fSize; }
27    Int_t         HeaderSize() const { return (Long_t) &fBasicElementSizeType - (Long_t) &fSize + sizeof(fBasicElementSizeType); }
28    void          Swap();
29
30    UInt_t        GetEquipmentSize() const { return fSize; }
31    UInt_t        GetEquipmentType() const { return fEquipmentType; }
32    UInt_t        GetId() const { return fEquipmentID; }
33    const UInt_t *GetTypeAttribute() const { return fTypeAttribute; }
34    UInt_t        GetBasicSizeType() const { return fBasicElementSizeType; }
35
36    void          Reset();
37
38    enum {
39      kAttributeWords = 3
40    };
41
42 private:
43    UInt_t fSize;                            // number of raw data bytes
44    UInt_t fEquipmentType;                   // equipment type
45    UInt_t fEquipmentID;                     // equipment ID
46    UInt_t fTypeAttribute[kAttributeWords];  // system (0,1) and user (2) attributes
47    UInt_t fBasicElementSizeType;            // basic element size type
48
49    ClassDef(AliRawEquipmentHeader,1) //Alice equipment header
50 };
51
52 #endif