]>
Commit | Line | Data |
---|---|---|
4b4eb769 | 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) { | |
eba76848 | 22 | |
4b4eb769 | 23 | TIter iter(requests); |
24 | TObjString* aString; | |
eba76848 | 25 | TObjArray* valueSet; |
4b4eb769 | 26 | while ((aString = (TObjString*) iter.Next())) { |
eba76848 | 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 | } | |
4b4eb769 | 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, | |
2bb7b766 | 43 | endTime, valueSet); |
4b4eb769 | 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(); | |
eba76848 | 83 | values.Write("DCSAliasMap", TObject::kSingleKey); |
4b4eb769 | 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 | ||
eba76848 | 98 | gSystem->Load("AliDCSClient"); |
4b4eb769 | 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 | } |