This class implements a value‐semantic type for representing the value of a user field in a log record. A user field value acts as a discriminated union, and may represent a value of any of the types described in ball::UserFieldType or an unset value (indicated by type ball::UserFieldType::e_VOID).

Synopsis

Declared in <ball_userfieldvalue.h>

class UserFieldValue;

Member Functions

Name

Description

UserFieldValue [constructor]

Constructors

operator=

Assign to this object the value of the specified rhs object, and return a reference providing modifiable access to this object.

allocator

Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the currently installed default allocator is used.

isUnset

Return true if this object has the unset value, and false otherwise. Note that if isUnset() returns true, then type() returns ball::UserFieldType::e_VOID.

print

Write the value of this object to the specified output stream in a human‐readable format, and return a reference to stream. Optionally specify an initial indentation level, whose absolute value is incremented recursively for nested objects. If level is specified, optionally specify spacesPerLevel, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect. Note that the format is not fully specified, and can change without notice.

reset

Set this object to have the unset value. After this operation, type() == ball::UserFieldType::e_VOID.

setCharArray

Set this object to have the specified value. After this operation, type() == ball::UserFieldType::e_CHAR_ARRAY.

setDatetimeTz

Set this object to have the specified value. After this operation, type() == ball::UserFieldType::e_DATETIMETZ.

setDouble

Set this object to have the specified value. After this operation, type() == ball::UserFieldType::e_DOUBLE.

setInt64

Set this object to have the specified value. After this operation, type() == ball::UserFieldType::e_INT64.

setString

Set this object to have the specified value. After this operation, type() == ball::UserFieldType::e_STRING.

swap

Efficiently exchange the value of this object with the value of the specified other object. This method provides the no‐throw exception‐safety guarantee if either type() is the same as other.type(), or neither type() nor other.type() is a type that requires allocation; otherwise, it provides the basic guarantee. The behavior is undefined unless this object was created with the same allocator as other.

theCharArray

Return a reference providing non‐modifiable access to the bsl::vector<char> value of this object. The behavior is undefined unless type() == ball::UserFieldType::e_CHAR_ARRAY.

theDatetimeTz

Return a reference providing non‐modifiable access to the DatetimeTz value of this object. The behavior is undefined unless type() == ball::UserFieldType::e_DATETIMETZ.

theDouble

Return a reference providing non‐modifiable access to the double value of this object. The behavior is undefined unless type() == ball::UserFieldType::e_DOUBLE.

theInt64

Return a reference providing non‐modifiable access to the 64‐bit integer value of this object. The behavior is undefined unless type() == ball::UserFieldType::e_INT64.

theString

Return a reference providing non‐modifiable access to the string value of this object. The behavior is undefined unless type() == ball::UserFieldType::e_STRING.

type

Return the type of this user field value. The type ball::UserFieldValue::e_VOID represents the unset value.

operator BloombergLP::bslmf::NestedTraitDeclaration<UserFieldValue, UsesBslmaAllocator>

Declare that this type uses a bslma allocator.

Friends

Name

Description

BloombergLP::ball::swap

Swap the value of the specified a object with the value of the specified b object. This method provides the no‐throw exception‐safety guarantee if either a.type() is the same as b.type() and a and b were created with the same allocator, or neither a.type() nor b.type() is a type that requires allocation; otherwise, it provides the basic guarantee.

BloombergLP::ball::operator==

Return true if the specified lhs and rhs objects have the same value, and false otherwise. Two UserFieldValue objects have the same value if they have the same type, and (if the type is not e_VOID) the value of that type (as accessed through the* methods) is the same.

Non-Member Functions

Name

Description

operator!=

Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. Two UserFieldValue objects do not have the same value if their type is not the same, or (if their type is not e_VOID) the value of that type (as accessed through the* methods) is not the same.

Created with MrDocs