/*++ Copyright (c) 1998 Microsoft Corporation Module Name: PassportPerfInterface.h Abstract: Performance Monitor Class Definition Author: Christopher Bergh (cbergh) 10-Sept-1988 Revision History: - added Instance support 1-Oct-98 --*/ #if !defined (PASSPORTPERFINTERFACE_H) #define PASSPORTPERFINTERFACE_H #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 #include class PassportPerfInterface { public: inline PassportPerfInterface() {}; inline virtual ~PassportPerfInterface () {}; enum OBJECT_TYPE { PERFMON_TYPE = 100, // use Perfmon counter, SNMP_TYPE = 101 // use SNMP Traps, }; // ------------------------------------------------------------------- /* Divide delta by delta time. Display suffix: "/sec" */ // PERF_COUNTER_COUNTER = 1000, /* Indicates the data is a counter which should not be */ /* time averaged on display (such as an error counter on a serial line) */ /* Display as is. No Display Suffix.*/ // PERF_COUNTER_RAWCOUNT = 1001, /* A timer which, when divided by an average base, produces a time */ /* in seconds which is the average time of some operation. This */ /* timer times total operations, and the base is the number of opera- */ /* tions. Display Suffix: "sec" */ // PERF_AVERAGE_TIMER = 1002, /* This counter is used to display the difference from one sample */ /* to the next. The counter value is a constantly increasing number */ /* and the value displayed is the difference between the current */ /* value and the previous value. Negative numbers are not allowed */ /* which shouldn't be a problem as long as the counter value is */ /* increasing or unchanged. */ // PERF_COUNTER_DELTA = 1003, /* unknown type */ // PERF_COUNTER_UNDEFINED = 1004 enum COUNTER_SAMPLING_TYPE { COUNTER_COUNTER = 1000, COUNTER_RAWCOUNT = 1001, AVERAGE_TIMER = 1002, COUNTER_DELTA = 1003, COUNTER_UNDEFINED = 1004 }; enum { MAX_COUNTERS = 128, MAX_INSTANCES = 64, MAX_INSTANCE_NAME = 32 }; // object initialization virtual BOOL init ( LPCTSTR lpcPerfObjectName ) = 0; // get set counter type virtual BOOL setCounterType ( const DWORD &dwType, const PassportPerfInterface::COUNTER_SAMPLING_TYPE &counterSampleType) = 0; virtual PassportPerfInterface::COUNTER_SAMPLING_TYPE getCounterType ( const DWORD &dwType ) const = 0; // adding/subtracting an instance to this object virtual BOOL addInstance ( LPCSTR lpszInstanceName ) = 0; virtual BOOL deleteInstance ( LPCSTR lpszInstanceName ) = 0; virtual BOOL instanceExists ( LPCSTR lpszInstanceName ) = 0; virtual BOOL hasInstances ( void ) = 0; virtual DWORD numInstances ( void ) = 0; // counters: note if hasInstances() is TRUE, then you must // give the instance name virtual BOOL incrementCounter ( const DWORD &dwType, LPCSTR lpszInstanceName = NULL ) = 0; virtual BOOL decrementCounter ( const DWORD &dwType, LPCSTR lpszInstanceName = NULL ) = 0; virtual BOOL setCounter ( const DWORD &dwType, const DWORD &dwValue, LPCSTR lpszInstanceName = NULL ) = 0; virtual BOOL getCounterValue ( DWORD &dwValue, const DWORD &dwType, LPCSTR lpszInstanceName = NULL ) = 0; }; // create and returns a pointer to the relevant implementation, // NULL if none exists (FYI- extern "C" to stop name mangling) extern "C" PassportPerfInterface * CreatePassportPerformanceObject( PassportPerfInterface::OBJECT_TYPE type ); #endif