(file) Return to StatisticalData.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

 1 kumpf 1.2 //%/////////////////////////////////////////////////////////////////////////////
 2 sage  1.1 //
 3 kumpf 1.2 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
 4           // The Open Group, Tivoli Systems
 5 sage  1.1 //
 6           // Permission is hereby granted, free of charge, to any person obtaining a copy
 7           // of this software and associated documentation files (the "Software"), to
 8           // deal in the Software without restriction, including without limitation the
 9           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10           // sell copies of the Software, and to permit persons to whom the Software is
11           // furnished to do so, subject to the following conditions:
12 kumpf 1.2 // 
13 sage  1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
14           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
16           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21           //
22           //==============================================================================
23           //
24           // Author: Arthur Pichlkostner
25           //             (checked in: Markus Mueller sedgewick_de@yahoo.de)
26           //
27           //%/////////////////////////////////////////////////////////////////////////////
28           
29           #include "StatisticalData.h"
30           
31           PEGASUS_NAMESPACE_BEGIN
32           
33           String StatisticalData::requestName[] = {
34 sage  1.1     "GET_CLASS",
35               "GET_INSTANCE",
36               "DELETE_CLASS",
37               "DELETE_INSTANCE",
38               "CREATE_CLASS",
39               "CREATE_INSTANCE",
40               "MODIFY_CLASS",
41               "MODIFY_INSTANCE",
42               "ENUMERATE_CLASSES",
43               "ENUMERATE_CLASS_NAMES",
44               "ENUMERATE_INSTANCES",
45               "ENUMERATE_INSTANCE_NAMES",
46               "EXEC_QUERY",
47               "ASSOCIATORS",
48               "ASSOCIATOR_NAMES",
49               "REFERENCES",
50               "REFERENCE_NAMES",
51               "GET_PROPERTY",
52               "SET_PROPERTY",
53               "GET_QUALIFIER",
54               "SET_QUALIFIER",
55 sage  1.1     "DELETE_QUALIFIER",
56               "ENUMERATE_QUALIFIERS"
57                 };
58           
59           const Uint32 StatisticalData::length = NUMBER_OF_TYPES;
60           
61           StatisticalData* StatisticalData::cur = NULL;
62           
63           StatisticalData* StatisticalData::current(){
64              if (cur == NULL){
65                 cur = new StatisticalData();
66              }
67              return cur;
68           }
69           
70           StatisticalData::StatisticalData(){
71              for (unsigned int i=0; i<StatisticalData::length; i++){
72                 numCalls[i] = 0;
73                 cimomTime[i] = 0;      providerTime[i] = 0;
74                 responseSize[i] = 0;
75                 requestSize[i] = 0;
76 sage  1.1    }
77           }
78           
79           void StatisticalData::addToValue(Uint64 value, Uint16 type, Uint32 t){
80              _mutex.lock( pegasus_thread_self() );
81              switch(t){
82                 case SERVER:      numCalls[type] += 1;
83                                   cimomTime[type] += value;
84                                   break;
85                 case PROVIDER:    providerTime[type] += value;
86                                   break;
87                 case BYTES_SENT:  responseSize[type] += value;
88                                   break;
89                 case BYTES_READ:  requestSize[type] += value;
90                                   break;
91              }
92              _mutex.unlock();
93           }
94           
95           PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2