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

Diff for /pegasus/src/Pegasus/Common/StatisticalData.h between version 1.13.8.1 and 1.28

version 1.13.8.1, 2005/01/26 16:18:38 version 1.28, 2006/08/25 17:40:09
Line 1 
Line 1 
 //%2004////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
Line 6 
Line 6 
 // IBM Corp.; EMC Corporation, The Open Group. // IBM Corp.; EMC Corporation, The Open Group.
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 25 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author: Arthur Pichlkostner  
 //             (checked in: Markus Mueller sedgewick_de@yahoo.de)  
 //  
 // Modified By:  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifndef STATISTICAL_DATA_H  #ifndef Pegasus_StatisticalData_h
 #define STATISTICAL_DATA_H  #define Pegasus_StatisticalData_h
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <iostream> #include <iostream>
 #include <cstring> #include <cstring>
   #include <Pegasus/Common/Linkage.h>
 #include <Pegasus/Common/InternalException.h> #include <Pegasus/Common/InternalException.h>
 #include <Pegasus/Common/IPC.h>  
 #include <Pegasus/Common/String.h> #include <Pegasus/Common/String.h>
 #include <Pegasus/Common/CIMProperty.h> #include <Pegasus/Common/CIMProperty.h>
 #include <Pegasus/Common/CIMInstance.h> #include <Pegasus/Common/CIMInstance.h>
 #include <Pegasus/Common/CIMDateTime.h> #include <Pegasus/Common/CIMDateTime.h>
 #include <Pegasus/Common/Linkage.h>  #include <Pegasus/Common/CIMMessage.h>
   #include <Pegasus/Common/Mutex.h>
   #include <Pegasus/Common/Time.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 #ifndef PEGASUS_DISABLE_PERFINST #ifndef PEGASUS_DISABLE_PERFINST
  
 #define STAT_GETSTARTTIME \ #define STAT_GETSTARTTIME \
 CIMDateTime startTime = CIMDateTime::getCurrentDateTime();\  TimeValue startTime = TimeValue::getCurrentTime();
   
   
 #define STAT_PMS_PROVIDEREND \  
 response->endProvider();            \  
 response->setStartServerTime(request->getStartServerTime()); \  
 response->setStartProviderTime(startTime);  
   
  
 #define STAT_SERVERSTART \ #define STAT_SERVERSTART \
 request->setStartServerTime(startTime); request->setStartServerTime(startTime);
  
   
 #define STAT_SERVEREND \ #define STAT_SERVEREND \
 response->endServer();\ response->endServer();\
  
 #define STAT_BYTESSENT \ #define STAT_BYTESSENT \
 Uint16 statType = (response->getType() >= CIM_GET_CLASS_RESPONSE_MESSAGE)? \ Uint16 statType = (response->getType() >= CIM_GET_CLASS_RESPONSE_MESSAGE)? \
   response->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE:response->getType() - 1;\   response->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE:response->getType() - 1;\
 StatisticalData::current()->addToValue(message.size(), statType, StatisticalData::BYTES_SENT);  StatisticalData::current()->addToValue(message.size(), statType, StatisticalData::PEGASUS_STATDATA_BYTES_SENT);
  
  
  
 #define STAT_SERVEREND_ERROR \ #define STAT_SERVEREND_ERROR \
 response->endServer(); response->endServer();
  
   
 #define STAT_PROVIDERSTART \  
 request->startProvider();  
   
   
 #define STAT_PROVIDEREND   \  
 request->endProvider();  
   
 #define STAT_COPYDISPATCHER \  
 response->setStartServerTime(request->getStartServerTime());  
   
   
   
 // copy request timing info into response  
 #define STAT_COPYDISPATCHER_REP \  
 response->setStartServerTime(request->getStartServerTime());   \  
 response->setStartProviderTime(request->getStartProviderTime());   \  
 response->setEndProviderTime(request->getEndProviderTime());  
   
   
   
 /*the request size value must be stored (requSize) and passed to the StatisticalData object at the /*the request size value must be stored (requSize) and passed to the StatisticalData object at the
  end of processing other wise it will be the ONLY vlaue that is passed to the client which reports  end of processing other wise it will be the ONLY vlaue that is passed to the client which reports
  the current state of the object, not the pevious (one command ago) state */  the current state of the object, not the pevious (one command ago) state */
Line 105 
Line 77 
 #define STAT_BYTESREAD \ #define STAT_BYTESREAD \
 Uint16 statType = (request->getType() >= CIM_GET_CLASS_RESPONSE_MESSAGE)? \ Uint16 statType = (request->getType() >= CIM_GET_CLASS_RESPONSE_MESSAGE)? \
     request->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE: request->getType()-1;\     request->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE: request->getType()-1;\
 StatisticalData::current()->requSize = contentLength; \  StatisticalData::current()->requSize = contentLength;
 StatisticalData::current()->addToValue(contentLength, statType, StatisticalData::BYTES_READ);  
  
   
   
   
   
 //serverResponseTime should be an Uint64 but the << operator wont accept that  
 #define STAT_SERVERTIME \  
 if (StatisticalData::current()->copyGSD)\  
          out << "WBEMServerResponseTime: " << (Uint32) serverResponseTime << "\r\n";  
 #else #else
 #define STAT_GETSTARTTIME #define STAT_GETSTARTTIME
 #define STAT_PMS_PROVIDEREND  
 #define STAT_SERVERSTART #define STAT_SERVERSTART
 #define STAT_SERVEREND #define STAT_SERVEREND
 #define STAT_SERVEREND_ERROR #define STAT_SERVEREND_ERROR
 #define STAT_PROVIDERSTART  
 #define STAT_PROVIDEREND  
 #define STAT_PROVIDEREND_REP  
 #define STAT_COPYDISPATCHER  
 #define STAT_COPYDISPATCHER_REP  
 #define STAT_BYTESREAD #define STAT_BYTESREAD
 #define STAT_SERVERTIME  
 #define STAT_BYTESSENT #define STAT_BYTESSENT
 #endif #endif
  
   class PEGASUS_COMMON_LINKAGE StatProviderTimeMeasurement
   {
   public:
       StatProviderTimeMeasurement(CIMMessage* message)
           : _message(message)
       {
   #ifndef PEGASUS_DISABLE_PERFINST
           _message->startProvider();
   #endif
       }
   
       ~StatProviderTimeMeasurement()
       {
   #ifndef PEGASUS_DISABLE_PERFINST
           _message->endProvider();
   #endif
       }
   
   private:
       StatProviderTimeMeasurement();
       StatProviderTimeMeasurement(const StatProviderTimeMeasurement&);
       StatProviderTimeMeasurement& operator=(const StatProviderTimeMeasurement&);
   
       CIMMessage* _message;
   };
   
 class PEGASUS_COMMON_LINKAGE StatisticalData class PEGASUS_COMMON_LINKAGE StatisticalData
 { {
    public:    public:
       enum StatRequestType{       enum StatRequestType{
          GET_CLASS,          GET_CLASS,
          GET_INSTANCE,          GET_INSTANCE,
          EXPORT_INDICATION,           INDICATION_DELIVERY,
          DELETE_CLASS,          DELETE_CLASS,
          DELETE_INSTANCE,          DELETE_INSTANCE,
          CREATE_CLASS,          CREATE_CLASS,
Line 160 
Line 142 
          SET_QUALIFIER,          SET_QUALIFIER,
          DELETE_QUALIFIER,          DELETE_QUALIFIER,
          ENUMERATE_QUALIFIERS,          ENUMERATE_QUALIFIERS,
            INVOKE_METHOD,
          NUMBER_OF_TYPES          NUMBER_OF_TYPES
       };       };
  
       enum StatDataType{       enum StatDataType{
          SERVER,           PEGASUS_STATDATA_SERVER,
          PROVIDER,           PEGASUS_STATDATA_PROVIDER,
          BYTES_SENT,           PEGASUS_STATDATA_BYTES_SENT,
          BYTES_READ           PEGASUS_STATDATA_BYTES_READ
       };       };
  
       static const Uint32 length;       static const Uint32 length;


Legend:
Removed from v.1.13.8.1  
changed lines
  Added in v.1.28

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2