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

Name

Description

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

Name

Description

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

Name

Description

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

Name

Description

ball_log_getCategoryHolder

Return 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).

Created with MrDocs