(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 w.white 1.4 	"EXPORT_INDICATION",
 39 sage    1.1     "DELETE_CLASS",
 40                 "DELETE_INSTANCE",
 41                 "CREATE_CLASS",
 42                 "CREATE_INSTANCE",
 43                 "MODIFY_CLASS",
 44                 "MODIFY_INSTANCE",
 45                 "ENUMERATE_CLASSES",
 46                 "ENUMERATE_CLASS_NAMES",
 47                 "ENUMERATE_INSTANCES",
 48                 "ENUMERATE_INSTANCE_NAMES",
 49                 "EXEC_QUERY",
 50                 "ASSOCIATORS",
 51                 "ASSOCIATOR_NAMES",
 52                 "REFERENCES",
 53                 "REFERENCE_NAMES",
 54                 "GET_PROPERTY",
 55                 "SET_PROPERTY",
 56                 "GET_QUALIFIER",
 57                 "SET_QUALIFIER",
 58                 "DELETE_QUALIFIER",
 59                 "ENUMERATE_QUALIFIERS"
 60 sage    1.1       };
 61             
 62             const Uint32 StatisticalData::length = NUMBER_OF_TYPES;
 63             
 64             StatisticalData* StatisticalData::cur = NULL;
 65             
 66             StatisticalData* StatisticalData::current(){
 67                if (cur == NULL){
 68                   cur = new StatisticalData();
 69                }
 70                return cur;
 71             }
 72             
 73             StatisticalData::StatisticalData(){
 74 w.white 1.4 
 75 w.white 1.6 
 76                copyGSD = 0;
 77             
 78 sage    1.1    for (unsigned int i=0; i<StatisticalData::length; i++){
 79                   numCalls[i] = 0;
 80 w.white 1.4       cimomTime[i] = 0;      
 81             	  providerTime[i] = 0;
 82 sage    1.1       responseSize[i] = 0;
 83                   requestSize[i] = 0;
 84 w.white 1.4 	  
 85 sage    1.1    }
 86             }
 87             
 88 w.white 1.5 void StatisticalData::addToValue(Sint64 value, Uint16 type, Uint32 t){
 89 sage    1.1    _mutex.lock( pegasus_thread_self() );
 90                switch(t){
 91 w.white 1.4 	  case SERVER:   	numCalls[type] += 1;
 92 sage    1.1                         cimomTime[type] += value;
 93                                     break;
 94                   case PROVIDER:    providerTime[type] += value;
 95                                     break;
 96                   case BYTES_SENT:  responseSize[type] += value;
 97                                     break;
 98                   case BYTES_READ:  requestSize[type] += value;
 99                                     break;
100                }
101                _mutex.unlock();
102             }
103             
104 w.white 1.6  void StatisticalData::setCopyGSD(Boolean flag)
105             {
106             
107             	copyGSD = flag;
108             }
109 w.white 1.4 
110 sage    1.1 PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2