BloombergLP::ball::Context

This class provides a container for aggregating the auxiliary information needed to transmit a log record. For each context attribute in this class (e.g., recordIndex), there is an accessor for obtaining the attribute's value (recordIndex) and there are manipulators for changing the contained attribute values (setAttributes checks attribute constraints; setAttributesRaw and setRecordIndexRaw do not). A static isValid method is also provided to verify that particular attribute values are consistent before they are used to create or modify a context object. Note that it is the client's responsibility not to construct or unilaterally modify a context object to hold incompatible attribute values.

Synopsis

Declared in <ball_context.h>

class Context;

Description

Additionally, this class supports a complete set of value semantic operations, including copy construction, assignment and equality comparison, and ostream printing. A precise operational definition of when two instances have the same value can be found in the description of operator== for the class. This class is exception neutral with no guarantee of rollback: if an exception is thrown during the invocation of a method on a pre-existing instance, the object is left in a valid state, but its value is undefined. In no event is memory leaked. Finally, aliasing (e.g., using all or part of an object as both source and destination) is supported in all cases.

Member Functions

NameDescription
Context [constructor]Constructors
operator= Assign to this context object the value of the specified rhs context object.
print Format this object to the specified output stream at the optionally specified indentation level and return a reference to the modifiable stream. If level is specified, optionally specify spacesPerLevel, the number of spaces per indentation level for this and all of its nested objects. Each line is indented by the absolute value of level * spacesPerLevel. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, suppress line breaks and format the entire output on one line. If stream is initially invalid, this operation has no effect.
recordIndex Return the record index attribute of this context object.
sequenceLength Return the sequence length attribute of this context object.
setAttributes Set the value of this context object to the specified transmissionCause, recordIndex, and sequenceLength values if transmissionCause, recordIndex, and sequenceLength represent a valid context. Return 0 on success, and a non-zero value (with no effect on this context object) otherwise.
setAttributesRaw Set the value of this context object to the specified transmissionCause, recordIndex, and sequenceLength values. The behavior is undefined if the resulting attribute values are incompatible.
setRecordIndexRaw Set the record index attribute of this context object to the specified index. The behavior is undefined if the resulting attribute values are incompatible.
transmissionCause Return the transmission cause attribute of this context object.
operator BloombergLP::bslmf::NestedTraitDeclaration<Context, UsesBslmaAllocator> Declare that this type uses a bslma allocator.

Static Member Functions

NameDescription
isValid Return true if the specified transmissionCause, recordIndex, and sequenceLength represent a valid context, and false otherwise. (See the CONSTRAINTS section of the component-level documentation above for a complete specification of the constraints on attribute values.)

Friends

NameDescription
BloombergLP::ball::operator==Return true if the specified lhs and rhs context objects have the same value, and false otherwise. Two context objects have the same value if each respective pair of corresponding attributes have the same value.

Non-Member Functions

NameDescription
operator!=Return true if the specified lhs and rhs context objects do not have the same value, and false otherwise. Two context objects do not have the same value if one or more respective attributes differ in value.