This component-private class provides a function object that closes over the formatter, logStream, and options parameters that are shared between all encoding operations provided in this component. The function-call operator of this class provides an overload set that accepts an "attribute" object that satisfies one of the bdlat type-category concepts, and an "attribute info" object that describes various metadata of the attribute.
Declared in <baljsn_encodeimplutil.h>
template<class FORMATTER>
class EncodeImplUtil_AttributeVisitor;
| Name | Description |
|---|---|
FormattingMode | FormattingMode is an alias to the type of an int-valued bdlat_FormattingMode bit-field. A FormattingMode value is not valid unless it is equal to an enumerator of bdlat_FormattingMode or a valid bitwise-or of two or more such enumerators. See the component-level documentation of {bdlat_formattingmode} for a description of the set of valid formatting-mode values. |
| Name | Description |
|---|---|
EncodeImplUtil_AttributeVisitor [constructor] | Construct an EncodeImplUtil_AttributeVisitor object having the specified formatter, logStream, isNextAttributeFirst, and options attributes. |
isNextAttributeFirst | Return the value of the isNextAttributeFirst attribute of this object. |
operator() | Encode the JSON representation of the specified attribute, having the name equal to the name of the specified attributeInfo, to the JSON formatter attribute of this object according to the formattingMode attribute of this object. If the isNextAttributeFirst attribute of this object is true, then the representation of the attribute contains no leading sequence delimiter, and does contain such a delimiter otherwise. The options attribute of this object configures aspects of the JSON representation of the attribute. If this operation is not successful, load an unspecified, human-readable description of the error condition to the logStream attribute of this object. Return 0 on success, and a non-zero value otherwise. The behavior is undefined unless the attribute satisfies both the static and dynamic requirements of the bdlat type-category concept corresponding to the specified category. See the component-level documentation of {baljsn_encoderoptions} for a description of the effects, if any, of each option in the options on the JSON representation of the attribute. See the package-level documentation of {bdlat} for an introduction to the requirements of bdlat type-category concepts. |