Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / STEER / AliDCSValue.h
1 #ifndef ALI_DCS_VALUE_H
2 #define ALI_DCS_VALUE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //
10 // This class represents the value(s) of a DCS data point at a given timestamp
11 //
12
13 #include <TObject.h>
14
15 class AliDCSValue : public TObject {
16 public:
17   enum Type {
18     kInvalid = 0,
19
20     kBool = 1,
21     kChar = 2,
22     kInt = 3,
23     kUInt = 4,
24     kFloat = 5
25   };
26
27   AliDCSValue();
28   AliDCSValue(const AliDCSValue& c);
29
30   virtual ~AliDCSValue();
31
32   AliDCSValue& operator=(const AliDCSValue& c);
33   virtual void Copy(TObject& c) const;
34
35   AliDCSValue(Bool_t value, UInt_t timeStamp);
36   AliDCSValue(Char_t value, UInt_t timeStamp);
37   AliDCSValue(Int_t value, UInt_t timeStamp);
38   AliDCSValue(UInt_t value, UInt_t timeStamp);
39   AliDCSValue(Float_t value, UInt_t timeStamp);
40
41   Bool_t GetBool() const { return fBool; }
42   Char_t GetChar() const { return fChar; }
43   Int_t GetInt() const { return fInt; }
44   UInt_t GetUInt() const { return fUInt; }
45   Float_t GetFloat() const { return fFloat; }
46
47   Type GetType() const { return fType; }
48
49   UInt_t GetTimeStamp() const { return fTimeStamp; }
50   void SetTimeStamp(UInt_t timeStamp) { fTimeStamp = timeStamp; }
51
52   Int_t GetSize() const;
53
54   const Char_t* ToString() const;
55   void Print(Option_t* /*opt*/) const;
56
57
58 /**********************************************/
59
60   Int_t Compare(const TObject* obj) const
61     { if( fTimeStamp < ((AliDCSValue *)obj )->fTimeStamp ) return -1;
62       if( fTimeStamp == ((AliDCSValue *)obj )->fTimeStamp ) return 0;
63       return 1;
64     }
65
66   Bool_t IsSortable() const { return kTRUE; }
67
68 /*********************************************/
69
70
71 protected:
72   void Init();
73
74   Type fType;           // type of the value stored
75
76   Bool_t fBool;         // bool value
77   Char_t fChar;         // char value
78   Int_t fInt;           // int value
79   UInt_t fUInt;         // uint value
80   Float_t fFloat;       // float value
81
82   UInt_t fTimeStamp;    // timestamp of this value
83
84         ClassDef(AliDCSValue, 2);
85 };
86
87 #endif