Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions | Public Attributes

ball::CategoryHolder Class Reference

#include <ball_category.h>

List of all members.

Public Types

enum  {
  e_UNINITIALIZED_CATEGORY = 256, e_DYNAMIC_CATEGORY = 257, BAEL_UNINITIALIZED_CATEGORY = e_UNINITIALIZED_CATEGORY, BAEL_DYNAMIC_CATEGORY = e_DYNAMIC_CATEGORY,
  UNINITIALIZED_CATEGORY = e_UNINITIALIZED_CATEGORY, DYNAMIC_CATEGORY = e_DYNAMIC_CATEGORY
}

Public Member Functions

void reset ()
void setCategory (const Category *category)
void setThreshold (int threshold)
void setNext (CategoryHolder *holder)
const Categorycategory () const
int threshold () const
CategoryHoldernext () const

Public Attributes

AtomicInt d_threshold
AtomicPointer d_category_p
AtomicPointer d_next_p

Detailed Description

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.

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

See Component ball_category


Member Enumeration Documentation

anonymous enum
Enumerator:
e_UNINITIALIZED_CATEGORY 

indicates no logger manager

e_DYNAMIC_CATEGORY 

corresponding category is dynamic

BAEL_UNINITIALIZED_CATEGORY 
BAEL_DYNAMIC_CATEGORY 
UNINITIALIZED_CATEGORY 
DYNAMIC_CATEGORY 

Member Function Documentation

void ball::CategoryHolder::reset (  ) 

Reset this object to its default value. The default value is:

          { e_UNINITIALIZED_CATEGORY, 0, 0 }
void ball::CategoryHolder::setCategory ( const Category category  ) 

Set the address of the category held by this holder to the specified category.

void ball::CategoryHolder::setThreshold ( int  threshold  ) 

Set the threshold level held by this holder to the specified threshold.

void ball::CategoryHolder::setNext ( CategoryHolder holder  ) 

Set this holder to point to the specified holder.

const Category* ball::CategoryHolder::category (  )  const

Return the address of the non-modifiable category held by this holder.

int ball::CategoryHolder::threshold (  )  const

Return the threshold level held by this holder.

CategoryHolder* ball::CategoryHolder::next (  )  const

Return the address of the modifiable holder held by this holder.


Member Data Documentation

threshold level

held category (not owned)

next category holder in linked list


The documentation for this class was generated from the following file: