Additional patch for #80619: Missing protections in AliDCSValue::Getxxx
[u/mrichter/AliRoot.git] / STEER / AliDCSValue.h
CommitLineData
57459306 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//
45a493ce 10// This class represents the value(s) of a DCS data point at a given timestamp
57459306 11//
12
45a493ce 13#include <TObject.h>
57459306 14
45a493ce 15class AliDCSValue : public TObject {
57459306 16public:
45a493ce 17 enum Type {
18 kInvalid = 0,
57459306 19
45a493ce 20 kBool = 1,
21 kChar = 2,
22 kInt = 3,
23 kUInt = 4,
60d864bd 24 kFloat = 5
45a493ce 25 };
57459306 26
45a493ce 27 AliDCSValue();
28 AliDCSValue(const AliDCSValue& c);
57459306 29
06b09194 30 virtual ~AliDCSValue();
57459306 31
45a493ce 32 AliDCSValue& operator=(const AliDCSValue& c);
33 virtual void Copy(TObject& c) const;
57459306 34
45a493ce 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);
57459306 40
f2a58588 41 Bool_t GetBool() const;
42 Char_t GetChar() const;
43 Int_t GetInt() const;
44 UInt_t GetUInt() const;
45 Float_t GetFloat() const;
57459306 46
7e1d8f17 47 operator Bool_t() const { return GetBool(); }
48 operator Char_t() const { return GetChar(); }
49 operator Int_t() const { return GetInt(); }
50 operator UInt_t() const { return GetUInt(); }
51 operator Float_t() const { return GetFloat(); }
52
45a493ce 53 Type GetType() const { return fType; }
45a493ce 54
55 UInt_t GetTimeStamp() const { return fTimeStamp; }
56 void SetTimeStamp(UInt_t timeStamp) { fTimeStamp = timeStamp; }
57
58 Int_t GetSize() const;
45a493ce 59
60 const Char_t* ToString() const;
5f370962 61 void Print(Option_t* /*opt*/) const;
62
63
64/**********************************************/
65
66 Int_t Compare(const TObject* obj) const
67 { if( fTimeStamp < ((AliDCSValue *)obj )->fTimeStamp ) return -1;
68 if( fTimeStamp == ((AliDCSValue *)obj )->fTimeStamp ) return 0;
69 return 1;
70 }
71
72 Bool_t IsSortable() const { return kTRUE; }
73
74/*********************************************/
75
45a493ce 76
77protected:
78 void Init();
79
80 Type fType; // type of the value stored
81
82 Bool_t fBool; // bool value
83 Char_t fChar; // char value
84 Int_t fInt; // int value
85 UInt_t fUInt; // uint value
86 Float_t fFloat; // float value
87
45a493ce 88 UInt_t fTimeStamp; // timestamp of this value
89
90 ClassDef(AliDCSValue, 2);
57459306 91};
92
93#endif