/*++ Copyright (c) 1995-1996 Microsoft Corporation Module Name : auxctrs.h Abstract: This module defines the auxiliary counters for Internet Common Services. Author: Murali R. Krishnan ( MuraliK ) 02-Apr-1996 Environment: Windows NT - User Mode Project: Internet Services Common DLL Revision History: --*/ # ifndef _IIS_AUX_COUNTERS_HXX_ # define _IIS_AUX_COUNTERS_HXX_ /************************************************************ * Include Headers ************************************************************/ /************************************************************ * Symbolic Definitions ************************************************************/ /*++ Counters belong to two categories 1. Active Counter - one that counts up and down It is expected that this counter consists of the current active items and hence this should not be wildly high, unless there are large # of counted objects. 2. Cumulative Counters - counts values up and up This count value is used to measure the # of times event(s) related to this counter occurred. Naming Conventions: prefixes used are: Aac & Cac Aac - Active Auxiliary Counter Cac - Cumulative Auxiliary Counter Ac - Auxiliar Counter --*/ typedef enum { // Ac - stands for Aux Counters. CacBufferAllocs = 0, CacBufferFrees, CacBufferReallocs, CacBufferCons, // constructed buffer class items CacBufferDest, // destructed buffer class items CacBufferLT32, // less than 32 byte allocs CacBufferGE32, // >= 32 CacCopyLT16, // less than 16 byte allocs CacCopyGE16, // >= 16 CacStringCons, CacStringDest, CacStringCopy, CacStringAppend, CacMultiszCopy, CacMultiszAppend, AacSBMaxCounters // sentinel counter } ENUM_IIS_AUX_COUNTER; # define NUM_AUX_COUNTERS (AacSBMaxCounters) #ifdef IIS_AUX_COUNTERS // // Macros for operating on these counters // # define AcIncrement( acCounter) \ (((acCounter) < NUM_AUX_COUNTERS) ? \ InterlockedIncrement( g_SBAuxCounters+(acCounter)) : \ 0) # define AcDecrement( acCounter) \ (((acCounter) < NUM_AUX_COUNTERS) ? \ InterlockedDecrement( g_SBAuxCounters+(acCounter)) : \ 0) # define AcCounter( acCounter) \ (((acCounter) < NUM_AUX_COUNTERS) ? g_SBAuxCounters[acCounter] : 0) extern LONG g_SBAuxCounters[]; # else // IIS_AUX_COUNTERS # define AcIncrement( acCounter) (0) /* do nothing */ # define AcDecrement( acCounter) (0) /* do nothing */ # define AcCounter ( acCounter) (0) /* do nothing */ #endif // IIS_AUX_COUNTERS # endif // _IIS_AUX_COUNTERS_HXX_ /************************ End of File ***********************/