(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.7 and 1.19.2.1

version 1.7, 2003/10/22 14:26:04 version 1.19.2.1, 2006/02/10 16:09:38
Line 1 
Line 1 
 //%2003////////////////////////////////////////////////////////////////////////  //%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.
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // 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.;
   // 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 41 
Line 47 
 #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/Linkage.h> #include <Pegasus/Common/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 #ifdef PEGASUS_HAS_PERFINST  #ifndef PEGASUS_DISABLE_PERFINST
  
 #define STAT_GETSTARTTIME \ #define STAT_GETSTARTTIME \
 timeval startTime; \  TimeValue startTime = TimeValue::getCurrentTime();
 pegasus_gettimeofday(&startTime);  
   #define STAT_PMS_PROVIDERSTART                               \
   response->setStartServerTime(request->getStartServerTime()); \
   response->setStartProviderTime(TimeValue::getCurrentTime());
   
   #define STAT_RESPONSEEND \
   response->endProvider();
  
 #define STAT_PMS_PROVIDEREND \ #define STAT_PMS_PROVIDEREND \
 response->endProvider();            \ response->endProvider();            \
 response->setStartServerTime(request->getStartServerTime()); \ response->setStartServerTime(request->getStartServerTime()); \
 response->setStartProviderTime(startTime); response->setStartProviderTime(startTime);
  
 #define STAT_SERVERSTART request->setStartServerTime(startTime);  
   #define STAT_SERVERSTART \
   request->setStartServerTime(startTime);
   
  
 #define STAT_SERVEREND \ #define STAT_SERVEREND \
 response->endServer(); \ response->endServer(); \
 Array<Sint8> timeOut;  \  
 timeOut.reserveCapacity(10); \  
 timeOut << response->getTotalTime();      \  
 message.insert(30, timeOut.getData(), timeOut.size()); \  
 Uint32 statType = (response->getType() > CIM_GET_CLASS_RESPONSE_MESSAGE)? \  
     response->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE: \  
     response->getType()-1; \  
 StatisticalData::current()->addToValue(message.size(), \  
     statType, StatisticalData::BYTES_SENT);  
  
 #define STAT_SERVEREND_ERROR   response->endServer();  #define STAT_BYTESSENT \
   Uint16 statType = (response->getType() >= CIM_GET_CLASS_RESPONSE_MESSAGE)? \
     response->getType() - CIM_GET_CLASS_RESPONSE_MESSAGE:response->getType() - 1;\
   StatisticalData::current()->addToValue(message.size(), statType, StatisticalData::PEGASUS_STATDATA_BYTES_SENT);
   
   
   
   #define STAT_SERVEREND_ERROR \
   response->endServer();
  
  
 #define STAT_PROVIDERSTART request->startProvider();  #define STAT_PROVIDERSTART \
   request->startProvider();
  
  
 #define STAT_PROVIDEREND   request->endProvider();  #define STAT_PROVIDEREND   \
   request->endProvider();
   
   #define STAT_COPYDISPATCHER \
   response->setStartServerTime(request->getStartServerTime());
  
 #define STAT_COPYDISPATCHER response->setStartServerTime(request->getStartServerTime());  
  
  
 // copy request timing info into response // copy request timing info into response
Line 87 
Line 106 
 response->setStartProviderTime(request->getStartProviderTime());   \ response->setStartProviderTime(request->getStartProviderTime());   \
 response->setEndProviderTime(request->getEndProviderTime()); response->setEndProviderTime(request->getEndProviderTime());
  
   
   
   /*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
    the current state of the object, not the pevious (one command ago) state */
   
 #define STAT_BYTESREAD \ #define STAT_BYTESREAD \
 Uint32 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() - CIM_GET_CLASS_RESPONSE_MESSAGE: request->getType()-1;\
     request->getType()-1; \  StatisticalData::current()->requSize = contentLength;
 StatisticalData::current()->addToValue(contentLength, \  
     statType, StatisticalData::BYTES_READ);  
   
  
  
 #define STAT_SERVERTIME out << "Servertime:  \r\n";  //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_PROVIDERSTART
 #define STAT_PMS_PROVIDEREND #define STAT_PMS_PROVIDEREND
   #define STAT_RESPONSEEND
 #define STAT_SERVERSTART #define STAT_SERVERSTART
 #define STAT_SERVEREND #define STAT_SERVEREND
 #define STAT_SERVEREND_ERROR #define STAT_SERVEREND_ERROR
Line 109 
Line 140 
 #define STAT_COPYDISPATCHER_REP #define STAT_COPYDISPATCHER_REP
 #define STAT_BYTESREAD #define STAT_BYTESREAD
 #define STAT_SERVERTIME #define STAT_SERVERTIME
   #define STAT_BYTESSENT
 #endif #endif
  
 class PEGASUS_COMMON_LINKAGE StatisticalData class PEGASUS_COMMON_LINKAGE StatisticalData
Line 117 
Line 149 
       enum StatRequestType{       enum StatRequestType{
          GET_CLASS,          GET_CLASS,
          GET_INSTANCE,          GET_INSTANCE,
            INDICATION_DELIVERY,
          DELETE_CLASS,          DELETE_CLASS,
          DELETE_INSTANCE,          DELETE_INSTANCE,
          CREATE_CLASS,          CREATE_CLASS,
Line 138 
Line 171 
          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;
Line 155 
Line 189 
  
       timeval timestamp;       timeval timestamp;
  
       Uint64 numCalls[NUMBER_OF_TYPES];        Sint64 numCalls[NUMBER_OF_TYPES];
       Uint64 cimomTime[NUMBER_OF_TYPES];        Sint64 cimomTime[NUMBER_OF_TYPES];
       Uint64 providerTime[NUMBER_OF_TYPES];        Sint64 providerTime[NUMBER_OF_TYPES];
       Uint64 responseSize[NUMBER_OF_TYPES];        Sint64 responseSize[NUMBER_OF_TYPES];
       Uint64 requestSize[NUMBER_OF_TYPES];        Sint64 requestSize[NUMBER_OF_TYPES];
           Sint64 requSize;        //tempory storage for requestSize vlaue
           Boolean copyGSD;
   //      Uint64 totalServTime;
       static StatisticalData* cur;       static StatisticalData* cur;
       void addToValue(Uint64 value, Uint16 type, Uint32 t);        void addToValue(Sint64 value, Uint16 type, Uint32 t);
       static String requestName[];       static String requestName[];
        void setCopyGSD(Boolean flag);
  
    protected:    protected:
       Mutex _mutex;       Mutex _mutex;


Legend:
Removed from v.1.7  
changed lines
  Added in v.1.19.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2