| Index: nspr/pr/include/prcountr.h
|
| diff --git a/nspr/pr/include/prcountr.h b/nspr/pr/include/prcountr.h
|
| deleted file mode 100644
|
| index 53b6176ba341f2a99e69765049efd850bf33e342..0000000000000000000000000000000000000000
|
| --- a/nspr/pr/include/prcountr.h
|
| +++ /dev/null
|
| @@ -1,525 +0,0 @@
|
| -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
| -/* This Source Code Form is subject to the terms of the Mozilla Public
|
| - * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
| -
|
| -#ifndef prcountr_h___
|
| -#define prcountr_h___
|
| -
|
| -/*----------------------------------------------------------------------------
|
| -** prcountr.h -- NSPR Instrumentation counters
|
| -**
|
| -** The NSPR Counter Feature provides a means to "count
|
| -** something." Counters can be dynamically defined, incremented,
|
| -** decremented, set, and deleted under application program
|
| -** control.
|
| -**
|
| -** The Counter Feature is intended to be used as instrumentation,
|
| -** not as operational data. If you need a counter for operational
|
| -** data, use native integral types.
|
| -**
|
| -** Counters are 32bit unsigned intergers. On overflow, a counter
|
| -** will wrap. No exception is recognized or reported.
|
| -**
|
| -** A counter can be dynamically created using a two level naming
|
| -** convention. A "handle" is returned when the counter is
|
| -** created. The counter can subsequently be addressed by its
|
| -** handle. An API is provided to get an existing counter's handle
|
| -** given the names with which it was originally created.
|
| -** Similarly, a counter's name can be retrieved given its handle.
|
| -**
|
| -** The counter naming convention is a two-level hierarchy. The
|
| -** QName is the higher level of the hierarchy; RName is the
|
| -** lower level. RNames can be thought of as existing within a
|
| -** QName. The same RName can exist within multiple QNames. QNames
|
| -** are unique. The NSPR Counter is not a near-zero overhead
|
| -** feature. Application designers should be aware of
|
| -** serialization issues when using the Counter API. Creating a
|
| -** counter locks a large asset, potentially causing a stall. This
|
| -** suggest that applications should create counters at component
|
| -** initialization, for example, and not create and destroy them
|
| -** willy-nilly. ... You have been warned.
|
| -**
|
| -** Incrementing and Adding to counters uses atomic operations.
|
| -** The performance of these operations will vary from platform
|
| -** to platform. On platforms where atomic operations are not
|
| -** supported the overhead may be substantial.
|
| -**
|
| -** When traversing the counter database with FindNext functions,
|
| -** the instantaneous values of any given counter is that at the
|
| -** moment of extraction. The state of the entire counter database
|
| -** may not be viewed as atomic.
|
| -**
|
| -** The counter interface may be disabled (No-Op'd) at compile
|
| -** time. When DEBUG is defined at compile time, the Counter
|
| -** Feature is compiled into NSPR and applications invoking it.
|
| -** When DEBUG is not defined, the counter macros compile to
|
| -** nothing. To force the Counter Feature to be compiled into an
|
| -** optimized build, define FORCE_NSPR_COUNTERS at compile time
|
| -** for both NSPR and the application intending to use it.
|
| -**
|
| -** Application designers should use the macro form of the Counter
|
| -** Feature methods to minimize performance impact in optimized
|
| -** builds. The macros normally compile to nothing on optimized
|
| -** builds.
|
| -**
|
| -** Application designers should be aware of the effects of
|
| -** debug and optimized build differences when using result of the
|
| -** Counter Feature macros in expressions.
|
| -**
|
| -** The Counter Feature is thread-safe and SMP safe.
|
| -**
|
| -** /lth. 09-Jun-1998.
|
| -*/
|
| -
|
| -#include "prtypes.h"
|
| -
|
| -PR_BEGIN_EXTERN_C
|
| -
|
| -/*
|
| -** Opaque counter handle type.
|
| -** ... don't even think of looking in here.
|
| -**
|
| -*/
|
| -typedef void * PRCounterHandle;
|
| -
|
| -#define PRCOUNTER_NAME_MAX 31
|
| -#define PRCOUNTER_DESC_MAX 255
|
| -
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_DEFINE_COUNTER() -- Define a PRCounterHandle
|
| -**
|
| -** DESCRIPTION: PR_DEFINE_COUNTER() is used to define a counter
|
| -** handle.
|
| -**
|
| -*/
|
| -#define PR_DEFINE_COUNTER(name) PRCounterHandle name
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_INIT_COUNTER_HANDLE() -- Set the value of a PRCounterHandle
|
| -**
|
| -** DESCRIPTION:
|
| -** PR_INIT_COUNTER_HANDLE() sets the value of a PRCounterHandle
|
| -** to value.
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_INIT_COUNTER_HANDLE(handle,value)\
|
| - (handle) = (PRCounterHandle)(value)
|
| -#else
|
| -#define PR_INIT_COUNTER_HANDLE(handle,value)
|
| -#endif
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_CreateCounter() -- Create a counter
|
| -**
|
| -** DESCRIPTION: PR_CreateCounter() creates a counter object and
|
| -** initializes it to zero.
|
| -**
|
| -** The macro form takes as its first argument the name of the
|
| -** PRCounterHandle to receive the handle returned from
|
| -** PR_CreateCounter().
|
| -**
|
| -** INPUTS:
|
| -** qName: The QName for the counter object. The maximum length
|
| -** of qName is defined by PRCOUNTER_NAME_MAX
|
| -**
|
| -** rName: The RName for the counter object. The maximum length
|
| -** of qName is defined by PRCOUNTER_NAME_MAX
|
| -**
|
| -** descrioption: The description of the counter object. The
|
| -** maximum length of description is defined by
|
| -** PRCOUNTER_DESC_MAX.
|
| -**
|
| -** OUTPUTS:
|
| -**
|
| -** RETURNS:
|
| -** PRCounterHandle.
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_CREATE_COUNTER(handle,qName,rName,description)\
|
| - (handle) = PR_CreateCounter((qName),(rName),(description))
|
| -#else
|
| -#define PR_CREATE_COUNTER(handle,qName,rName,description)
|
| -#endif
|
| -
|
| -NSPR_API(PRCounterHandle)
|
| - PR_CreateCounter(
|
| - const char *qName,
|
| - const char *rName,
|
| - const char *description
|
| -);
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_DestroyCounter() -- Destroy a counter object.
|
| -**
|
| -** DESCRIPTION: PR_DestroyCounter() removes a counter and
|
| -** unregisters its handle from the counter database.
|
| -**
|
| -** INPUTS:
|
| -** handle: the PRCounterHandle of the counter to be destroyed.
|
| -**
|
| -** OUTPUTS:
|
| -** The counter is destroyed.
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_DESTROY_COUNTER(handle) PR_DestroyCounter((handle))
|
| -#else
|
| -#define PR_DESTROY_COUNTER(handle)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_DestroyCounter(
|
| - PRCounterHandle handle
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_GetCounterHandleFromName() -- Retreive a
|
| -** counter's handle give its name.
|
| -**
|
| -** DESCRIPTION: PR_GetCounterHandleFromName() retreives a
|
| -** counter's handle from the counter database, given the name
|
| -** the counter was originally created with.
|
| -**
|
| -** INPUTS:
|
| -** qName: Counter's original QName.
|
| -** rName: Counter's original RName.
|
| -**
|
| -** OUTPUTS:
|
| -**
|
| -** RETURNS:
|
| -** PRCounterHandle or PRCounterError.
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_GET_COUNTER_HANDLE_FROM_NAME(handle,qName,rName)\
|
| - (handle) = PR_GetCounterHandleFromName((qName),(rName))
|
| -#else
|
| -#define PR_GET_COUNTER_HANDLE_FROM_NAME(handle,qName,rName)
|
| -#endif
|
| -
|
| -NSPR_API(PRCounterHandle)
|
| - PR_GetCounterHandleFromName(
|
| - const char *qName,
|
| - const char *rName
|
| -);
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_GetCounterNameFromHandle() -- Retreive a
|
| -** counter's name, given its handle.
|
| -**
|
| -** DESCRIPTION: PR_GetCounterNameFromHandle() retreives a
|
| -** counter's name given its handle.
|
| -**
|
| -** INPUTS:
|
| -** qName: Where to store a pointer to qName.
|
| -** rName: Where to store a pointer to rName.
|
| -** description: Where to store a pointer to description.
|
| -**
|
| -** OUTPUTS: Pointers to the Counter Feature's copies of the names
|
| -** used when the counters were created.
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_GET_COUNTER_NAME_FROM_HANDLE(handle,qName,rName,description)\
|
| - PR_GetCounterNameFromHandle((handle),(qName),(rName),(description))
|
| -#else
|
| -#define PR_GET_COUNTER_NAME_FROM_HANDLE(handle,qName,rName,description )
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_GetCounterNameFromHandle(
|
| - PRCounterHandle handle,
|
| - const char **qName,
|
| - const char **rName,
|
| - const char **description
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_IncrementCounter() -- Add one to the referenced
|
| -** counter.
|
| -**
|
| -** DESCRIPTION: Add one to the referenced counter.
|
| -**
|
| -** INPUTS:
|
| -** handle: The PRCounterHandle of the counter to be incremented
|
| -**
|
| -** OUTPUTS: The counter is incrementd.
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_INCREMENT_COUNTER(handle) PR_IncrementCounter(handle)
|
| -#else
|
| -#define PR_INCREMENT_COUNTER(handle)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_IncrementCounter(
|
| - PRCounterHandle handle
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_DecrementCounter() -- Subtract one from the
|
| -** referenced counter
|
| -**
|
| -** DESCRIPTION: Subtract one from the referenced counter.
|
| -**
|
| -** INPUTS:
|
| -** handle: The PRCounterHandle of the coutner to be
|
| -** decremented.
|
| -**
|
| -** OUTPUTS: the counter is decremented.
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_DECREMENT_COUNTER(handle) PR_DecrementCounter(handle)
|
| -#else
|
| -#define PR_DECREMENT_COUNTER(handle)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_DecrementCounter(
|
| - PRCounterHandle handle
|
| -);
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_AddToCounter() -- Add a value to a counter.
|
| -**
|
| -** DESCRIPTION: Add value to the counter referenced by handle.
|
| -**
|
| -** INPUTS:
|
| -** handle: the PRCounterHandle of the counter to be added to.
|
| -**
|
| -** value: the value to be added to the counter.
|
| -**
|
| -** OUTPUTS: new value for counter.
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_ADD_TO_COUNTER(handle,value)\
|
| - PR_AddToCounter((handle),(value))
|
| -#else
|
| -#define PR_ADD_TO_COUNTER(handle,value)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_AddToCounter(
|
| - PRCounterHandle handle,
|
| - PRUint32 value
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_SubtractFromCounter() -- A value is subtracted
|
| -** from a counter.
|
| -**
|
| -** DESCRIPTION:
|
| -** Subtract a value from a counter.
|
| -**
|
| -** INPUTS:
|
| -** handle: the PRCounterHandle of the counter to be subtracted
|
| -** from.
|
| -**
|
| -** value: the value to be subtracted from the counter.
|
| -**
|
| -** OUTPUTS: new value for counter
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_SUBTRACT_FROM_COUNTER(handle,value)\
|
| - PR_SubtractFromCounter((handle),(value))
|
| -#else
|
| -#define PR_SUBTRACT_FROM_COUNTER(handle,value)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_SubtractFromCounter(
|
| - PRCounterHandle handle,
|
| - PRUint32 value
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_GetCounter() -- Retreive the value of a counter
|
| -**
|
| -** DESCRIPTION:
|
| -** Retreive the value of a counter.
|
| -**
|
| -** INPUTS:
|
| -** handle: the PR_CounterHandle of the counter to be retreived
|
| -**
|
| -** OUTPUTS:
|
| -**
|
| -** RETURNS: The value of the referenced counter
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_GET_COUNTER(counter,handle)\
|
| - (counter) = PR_GetCounter((handle))
|
| -#else
|
| -#define PR_GET_COUNTER(counter,handle) 0
|
| -#endif
|
| -
|
| -NSPR_API(PRUint32)
|
| - PR_GetCounter(
|
| - PRCounterHandle handle
|
| -);
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_SetCounter() -- Replace the content of counter
|
| -** with value.
|
| -**
|
| -** DESCRIPTION: The contents of the referenced counter are
|
| -** replaced by value.
|
| -**
|
| -** INPUTS:
|
| -** handle: the PRCounterHandle of the counter whose contents
|
| -** are to be replaced.
|
| -**
|
| -** value: the new value of the counter.
|
| -**
|
| -** OUTPUTS:
|
| -**
|
| -** RETURNS: void
|
| -**
|
| -** RESTRICTIONS:
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_SET_COUNTER(handle,value) PR_SetCounter((handle),(value))
|
| -#else
|
| -#define PR_SET_COUNTER(handle,value)
|
| -#endif
|
| -
|
| -NSPR_API(void)
|
| - PR_SetCounter(
|
| - PRCounterHandle handle,
|
| - PRUint32 value
|
| -);
|
| -
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_FindNextCounterQname() -- Retreive the next QName counter
|
| -** handle iterator
|
| -**
|
| -** DESCRIPTION:
|
| -** PR_FindNextCounterQname() retreives the first or next Qname
|
| -** the counter data base, depending on the value of handle. When
|
| -** handle is NULL, the function attempts to retreive the first
|
| -** QName handle in the database. When handle is a handle previosly
|
| -** retreived QName handle, then the function attempts to retreive
|
| -** the next QName handle.
|
| -**
|
| -** INPUTS:
|
| -** handle: PRCounterHandle or NULL.
|
| -**
|
| -** OUTPUTS: returned
|
| -**
|
| -** RETURNS: PRCounterHandle or NULL when no more QName counter
|
| -** handles are present.
|
| -**
|
| -** RESTRICTIONS:
|
| -** A concurrent PR_CreateCounter() or PR_DestroyCounter() may
|
| -** cause unpredictable results.
|
| -**
|
| -** A PRCounterHandle returned from this function may only be used
|
| -** in another PR_FindNextCounterQname() function call; other
|
| -** operations may cause unpredictable results.
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_FIND_NEXT_COUNTER_QNAME(next,handle)\
|
| - (next) = PR_FindNextCounterQname((handle))
|
| -#else
|
| -#define PR_FIND_NEXT_COUNTER_QNAME(next,handle) NULL
|
| -#endif
|
| -
|
| -NSPR_API(PRCounterHandle)
|
| - PR_FindNextCounterQname(
|
| - PRCounterHandle handle
|
| -);
|
| -
|
| -/* -----------------------------------------------------------------------
|
| -** FUNCTION: PR_FindNextCounterRname() -- Retreive the next RName counter
|
| -** handle iterator
|
| -**
|
| -** DESCRIPTION:
|
| -** PR_FindNextCounterRname() retreives the first or next RNname
|
| -** handle from the counter data base, depending on the
|
| -** value of handle. When handle is NULL, the function attempts to
|
| -** retreive the first RName handle in the database. When handle is
|
| -** a handle previosly retreived RName handle, then the function
|
| -** attempts to retreive the next RName handle.
|
| -**
|
| -** INPUTS:
|
| -** handle: PRCounterHandle or NULL.
|
| -** qhandle: PRCounterHandle of a previously aquired via
|
| -** PR_FIND_NEXT_QNAME_HANDLE()
|
| -**
|
| -** OUTPUTS: returned
|
| -**
|
| -** RETURNS: PRCounterHandle or NULL when no more RName counter
|
| -** handles are present.
|
| -**
|
| -** RESTRICTIONS:
|
| -** A concurrent PR_CreateCounter() or PR_DestroyCounter() may
|
| -** cause unpredictable results.
|
| -**
|
| -** A PRCounterHandle returned from this function may only be used
|
| -** in another PR_FindNextCounterRname() function call; other
|
| -** operations may cause unpredictable results.
|
| -**
|
| -*/
|
| -#if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
|
| -#define PR_FIND_NEXT_COUNTER_RNAME(next,rhandle,qhandle)\
|
| - (next) = PR_FindNextCounterRname((rhandle),(qhandle))
|
| -#else
|
| -#define PR_FIND_NEXT_COUNTER_RNAME(next,rhandle,qhandle)
|
| -#endif
|
| -
|
| -NSPR_API(PRCounterHandle)
|
| - PR_FindNextCounterRname(
|
| - PRCounterHandle rhandle,
|
| - PRCounterHandle qhandle
|
| -);
|
| -
|
| -PR_END_EXTERN_C
|
| -
|
| -#endif /* prcountr_h___ */
|
|
|