BloombergLP::ball::CategoryHolder

This class, informally referred to as a "category holder" (or simply "holder"), holds a category, a threshold level, and a pointer to a "next" holder. Both the category and next pointer may be null. The intended use is as follows: (1) instances of this class are (only) declared in contexts where logging occurs; (2) if the held category is non-null, then the held threshold is the numerical maximum of the four levels of that category; (3) if the next pointer is non-null, then the holder pointed to holds the same category and threshold. Instances of this class must be statically initializable. Hence, the data members are public, and automatically generated constructors and destructor are used.

Synopsis

Declared in <ball_category.h>

class CategoryHolder;

Description

This class should not be used directly by client code. It is an implementation detail of the ball logging system.

Enums

NameDescription
Unnamed enum This enumeration defines distinguished values for category holder threshold levels. Note that these values are intentionally outside the range [0 .. 255].

Member Functions

NameDescription
category Return the address of the non-modifiable category held by this holder.
next Return the address of the modifiable holder held by this holder.
reset Reset this object to its default value. The default value is: ` { e_UNINITIALIZED_CATEGORY, 0, 0 } `
setCategory Set the address of the category held by this holder to the specified category.
setNext Set this holder to point to the specified holder.
setThreshold Set the threshold level held by this holder to the specified threshold.
threshold Return the threshold level held by this holder.

Data Members

NameDescription
d_category_p Held category (not owned).
d_next_p Next category holder in the linked list.
d_threshold Threshold level held by this holder.

Non-Member Functions

NameDescription
ball_log_getCategoryHolderReturn the address of the specified categoryHolder. Note that this function facilitates consistent lookup of block-scope and class-scope category holders (see "Logging Macro Reuse" in the "IMPLEMENTATION NOTES" of the component implementation file for details).