[#BloombergLP-ball-Context] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::Context :relfileprefix: ../../ :mrdocs: This class provides a container for the context of a transmitted log record. == Synopsis Declared in `<ball_context.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Context; ---- == Description 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. 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 [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Context/2constructor-09.adoc[`Context`] [.small]#[constructor]# | Constructors | xref:BloombergLP/ball/Context/operator_assign.adoc[`operator=`] | Assign to this context object the value of the specified `rhs` context object. | xref:BloombergLP/ball/Context/print.adoc[`print`] | Format this object to the specified output `stream`. | xref:BloombergLP/ball/Context/recordIndex.adoc[`recordIndex`] | Return the record index attribute of this context object. | xref:BloombergLP/ball/Context/sequenceLength.adoc[`sequenceLength`] | Return the sequence length attribute of this context object. | xref:BloombergLP/ball/Context/setAttributes.adoc[`setAttributes`] | Set the attributes of this context object if they represent a valid context. | xref:BloombergLP/ball/Context/setAttributesRaw.adoc[`setAttributesRaw`] | Set the attributes of this context object without validating them. | xref:BloombergLP/ball/Context/setRecordIndexRaw.adoc[`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. | xref:BloombergLP/ball/Context/transmissionCause.adoc[`transmissionCause`] | Return the transmission cause attribute of this context object. | xref:BloombergLP/ball/Context/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<Context, UsesBslmaAllocator>`] | Declare that this type uses a `bslma` allocator. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Context/isValid.adoc[`isValid`] | Return whether the given attributes represent a valid context. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/ball/operator_eq-07.adoc[BloombergLP::ball::operator==]` | Return `true` if the specified `lhs` and `rhs` context objects have the same value, and `false` otherwise. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/operator_not_eq-02.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` context objects do not have the same value, and `false` otherwise. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#