ROOT logo
#ifndef ALI_DCS_ARRAY_H
#define ALI_DCS_ARRAY_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// This class represents the value(s) of a the LHC DPs at a given timestamp   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#include <TObject.h>
#include <TObjArray.h>
//#include <TTimeStamp.h>
class TObjString;

class AliDCSArray : public TObject {
 public:
	enum Type {
		kInvalid = 0,
		kBool = 1,
		kChar = 2,
		kInt = 3,
		kUInt = 4,
		kFloat = 5,
		kString = 6,
		kDouble = 7
	};
	
	AliDCSArray();
	
	virtual ~AliDCSArray();
	
	AliDCSArray(Int_t nentries, Bool_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, Char_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, Int_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, UInt_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, Float_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, Double_t* value, Double_t timeStamp);
	AliDCSArray(Int_t nentries, TObjArray* value, Double_t timeStamp);
	
	Int_t GetNEntries() const { return fnentries;}
	Bool_t* GetBool() const { return fBool; }
	Char_t* GetChar() const { return fChar; }
	Int_t* GetInt() const { return fInt; }
	UInt_t* GetUInt() const { return fUInt; }
	Float_t* GetFloat() const { return fFloat; }
	Double_t* GetDouble() const { return fDouble; }
	TObjArray* GetStringArray() const { return fStringArray; }

	Bool_t GetBool(Int_t index) const { return fBool[index]; }
	Char_t GetChar(Int_t index) const { return fChar[index]; }
	Int_t GetInt(Int_t index) const { return fInt[index]; }
	UInt_t GetUInt(Int_t index) const { return fUInt[index]; }
	Float_t GetFloat(Int_t index) const { return fFloat[index]; }
	Double_t GetDouble(Int_t index) const { return fDouble[index]; }
	TObjString* GetStringArray(Int_t index) const { return (TObjString*)fStringArray->At(index); }
	
	Type GetType() const { return fType; }
	
	Double_t GetTimeStamp() const { return fTimeStamp; }
	void SetTimeStamp(Double_t timeStamp) { fTimeStamp = timeStamp; }
	
 protected:
	
	void Init();
	
	Type fType;                // type of the value stored
	
	Int_t fnentries;           // n. of entries at the same timestamp
	Bool_t* fBool;             //[fnentries] bool value
	Char_t* fChar;             //[fnentries] char value
	Int_t* fInt;               //[fnentries] int value
	UInt_t* fUInt;             //[fnentries] uint value
	Float_t* fFloat;           //[fnentries] float value
	//	TString* fString;   //[fnentries] string value
	TObjArray* fStringArray;    //TObjArray to store TObjStrinf for string value
	
	Double_t fTimeStamp;    // timestamp of this value

	Double_t* fDouble;         //[fnentries] double value

 private:
	AliDCSArray(const AliDCSArray& c);
	AliDCSArray& operator=(const AliDCSArray& c);
	
	ClassDef(AliDCSArray, 2);
};

#endif
 AliDCSArray.h:1
 AliDCSArray.h:2
 AliDCSArray.h:3
 AliDCSArray.h:4
 AliDCSArray.h:5
 AliDCSArray.h:6
 AliDCSArray.h:7
 AliDCSArray.h:8
 AliDCSArray.h:9
 AliDCSArray.h:10
 AliDCSArray.h:11
 AliDCSArray.h:12
 AliDCSArray.h:13
 AliDCSArray.h:14
 AliDCSArray.h:15
 AliDCSArray.h:16
 AliDCSArray.h:17
 AliDCSArray.h:18
 AliDCSArray.h:19
 AliDCSArray.h:20
 AliDCSArray.h:21
 AliDCSArray.h:22
 AliDCSArray.h:23
 AliDCSArray.h:24
 AliDCSArray.h:25
 AliDCSArray.h:26
 AliDCSArray.h:27
 AliDCSArray.h:28
 AliDCSArray.h:29
 AliDCSArray.h:30
 AliDCSArray.h:31
 AliDCSArray.h:32
 AliDCSArray.h:33
 AliDCSArray.h:34
 AliDCSArray.h:35
 AliDCSArray.h:36
 AliDCSArray.h:37
 AliDCSArray.h:38
 AliDCSArray.h:39
 AliDCSArray.h:40
 AliDCSArray.h:41
 AliDCSArray.h:42
 AliDCSArray.h:43
 AliDCSArray.h:44
 AliDCSArray.h:45
 AliDCSArray.h:46
 AliDCSArray.h:47
 AliDCSArray.h:48
 AliDCSArray.h:49
 AliDCSArray.h:50
 AliDCSArray.h:51
 AliDCSArray.h:52
 AliDCSArray.h:53
 AliDCSArray.h:54
 AliDCSArray.h:55
 AliDCSArray.h:56
 AliDCSArray.h:57
 AliDCSArray.h:58
 AliDCSArray.h:59
 AliDCSArray.h:60
 AliDCSArray.h:61
 AliDCSArray.h:62
 AliDCSArray.h:63
 AliDCSArray.h:64
 AliDCSArray.h:65
 AliDCSArray.h:66
 AliDCSArray.h:67
 AliDCSArray.h:68
 AliDCSArray.h:69
 AliDCSArray.h:70
 AliDCSArray.h:71
 AliDCSArray.h:72
 AliDCSArray.h:73
 AliDCSArray.h:74
 AliDCSArray.h:75
 AliDCSArray.h:76
 AliDCSArray.h:77
 AliDCSArray.h:78
 AliDCSArray.h:79
 AliDCSArray.h:80
 AliDCSArray.h:81
 AliDCSArray.h:82
 AliDCSArray.h:83
 AliDCSArray.h:84
 AliDCSArray.h:85
 AliDCSArray.h:86
 AliDCSArray.h:87
 AliDCSArray.h:88
 AliDCSArray.h:89
 AliDCSArray.h:90
 AliDCSArray.h:91
 AliDCSArray.h:92
 AliDCSArray.h:93