update (alberto):
[u/mrichter/AliRoot.git] / SHUTTLE / AliDCSClient.h
1 #ifndef ALI_DCS_CLIENT_H
2 #define ALI_DCS_CLIENT_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 AliDCSClient.
11 // The client used for data retrieval from DCS server.
12 // For more info see AliDCSClient.cxx
13 //
14
15 #include "AliDCSMessage.h"
16
17 class TObjArray;
18 class TSocket;
19 class TMap;
20
21 class AliDCSClient: public TObject {
22 public:
23
24         friend class AliShuttle;
25
26         AliDCSClient(const char* host, Int_t port, UInt_t timeout = 5000,
27                         Int_t retries = 5);
28         virtual ~AliDCSClient();
29
30
31         Int_t GetDPValues(const char* dpName, UInt_t startTime, UInt_t endTime,
32                                 TObjArray* result);
33
34         Int_t GetAliasValues(const char* alias, UInt_t startTime,
35                                 UInt_t endTime, TObjArray* result);
36
37         Int_t GetDPValues(UInt_t startTime, UInt_t endTime, TMap& result);
38
39         Int_t GetAliasValues(UInt_t startTime, UInt_t endTime, TMap& result);
40
41
42         AliDCSMessage::ErrorCode GetServerErrorCode() const
43                 { return fServerErrorCode;};
44
45         const TString& GetServerError() const {return fServerError;};
46
47
48         Bool_t IsConnected();
49
50         void Close();
51
52
53         static const char* GetErrorString(Int_t code);
54
55 private:
56
57         static const Int_t fgkBadState = -1;            // Bad state
58         static const Int_t fgkInvalidParameter = -2;    // Invalid parameter
59         static const Int_t fgkTimeout = -3;             // Timeout
60         static const Int_t fgkBadMessage = -4;          // Bad message
61         static const Int_t fgkCommError = -5;           // Communication error
62         static const Int_t fgkServerError = -6;         // Server error
63
64         static const char* fgkBadStateString;           // Bad state string
65         static const char* fgkInvalidParameterString;   // Invalid parameter string
66         static const char* fgkTimeoutString;            // Timeout string
67         static const char* fgkBadMessageString;         // Bad message string
68         static const char* fgkCommErrorString;          // Communication error string
69         static const char* fgkServerErrorString;        // Server error string
70
71         AliDCSClient(const AliDCSClient& other);
72         AliDCSClient& operator= (const AliDCSClient& other);
73
74         TSocket* fSocket;       // Pointer to the TCP socket client
75
76         UInt_t fTimeout;        // timeout parameter
77
78         Int_t fRetries;         // number of retries
79
80         AliDCSMessage::ErrorCode fServerErrorCode;      // error code
81
82         TString fServerError;   // server error string
83
84
85         Int_t SendBuffer(const char* buffer, Int_t size);
86
87         Int_t ReceiveBuffer(char* buffer, Int_t size);
88
89         Int_t SendMessage(AliDCSMessage& message);
90
91         Int_t ReceiveMessage(AliDCSMessage& message);
92
93         Int_t GetValues(AliDCSMessage::RequestType requestType,
94                 const char* requestString, UInt_t startTime, UInt_t endTime,
95                 TObjArray* result);
96
97         Int_t GetValues(AliDCSMessage::RequestType requestType,
98                 UInt_t startTime, UInt_t endTime, TMap& result);
99
100         Int_t ReceiveValueSet(TObjArray* result);
101
102
103         ClassDef(AliDCSClient, 0);
104 };
105
106 #endif