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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2