]> git.uio.no Git - u/mrichter/AliRoot.git/blob - SHUTTLE/DCSClient/macros/TestClientAlias.C
major update (Alberto)
[u/mrichter/AliRoot.git] / SHUTTLE / DCSClient / macros / TestClientAlias.C
1 void GetValues(const char* host, Int_t port, const char* request,
2         Long_t startTime, Long_t endTime) 
3 {
4
5         AliDCSClient client(host, port, 1000, 5);
6
7         Int_t result;
8
9         TTimeStamp currentTime;
10         TMap values;
11
12         TString rString(request);
13
14         TObjArray* requests = rString.Tokenize(",");
15
16         cout<<"Requests: "<<requests->GetEntries()<<endl;
17
18         TStopwatch sw;
19         sw.Start();
20
21         if (requests->GetEntries() > 1) {
22
23                 TIter iter(requests);
24                 TObjString* aString;
25                 TObjArray* valueSet;
26                 while ((aString = (TObjString*) iter.Next())) {
27                         cout<<"  Querying: "<<aString->GetName()<<endl;
28                         valueSet = new TObjArray();
29                         valueSet->SetOwner(1);
30
31                         result = client.GetDPValues(aString->GetName(), startTime,
32                                 endTime, valueSet);
33                         values.Add(aString->Clone(), valueSet);
34                 }
35
36         } else {
37                 TObjArray* valueSet = new TObjArray();
38                 valueSet->SetOwner(1);
39
40                 values.Add(new TObjString(request), valueSet);
41
42                 result = client.GetAliasValues(request, startTime,
43                                 endTime, valueSet);
44         }
45
46         if (result < 0) {
47                 cout<<"Communication failure: "<<
48                         AliDCSClient::GetErrorString(result)<<endl;
49
50                 if (result == AliDCSClient::fgkServerError) {
51                         cout<<"Server error code: "<<
52                                 client.GetServerErrorCode()<<endl;
53                         cout<<client.GetServerError()<<endl;
54                 }
55         }
56         
57         sw.Stop();
58         cout<<"Elapsed time: "<<sw.RealTime()<<endl;
59         if (result > 0) {
60                 cout<<"Time per value: "<<sw.RealTime()/result<<endl;
61         }
62         cout<<"Received values: "<<result<<endl;
63
64         TIter iter(&values);
65         TObjString* aRequest;
66         while ((aRequest = (TObjString*) iter.Next())) {
67
68                 TObjArray* valueSet = (TObjArray*) values.GetValue(aRequest);
69                 
70                 cout<<" '"<<aRequest->String()<<"' values: " 
71                         <<valueSet->GetEntriesFast()<<endl;
72
73                 TIter valIter(valueSet);
74                 AliDCSValue* aValue;
75                 while ((aValue = (AliDCSValue*) valIter.Next())) {
76                         cout<<aValue->ToString()<<endl;
77                 } 
78         }
79
80 /*
81         TFile file("dump.root", "UPDATE");
82         file.cd();
83         values.Write("DCSAliasMap", TObject::kSingleKey);
84         file.Close(); 
85 */
86
87         values.DeleteAll();
88         delete requests;
89
90         cout<<"All values returned in runrange:  "<<endl;
91         cout<<"StartTime: "<<TTimeStamp(startTime).AsString()<<endl;
92         cout<<"EndTime: "<<TTimeStamp(endTime).AsString()<<endl;
93 }
94
95 void TestClientAlias(const char* host, Int_t port, const char* request,
96         UInt_t startShift, UInt_t endShift) {
97
98         gSystem->Load("AliDCSClient");
99
100 //      AliLog::EnableDebug(kFALSE);
101 //      AliLog::SetGlobalDebugLevel(3);
102
103         TTimeStamp currentTime;
104
105         GetValues(host, port, request,
106                 currentTime.GetSec() - startShift, 
107                 currentTime.GetSec() - endShift);
108
109         cout<<"Client done"<<endl;
110 }