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.
See baljsn_encoder
template<class TYPE , class ATTRIBUTE_INFO >
int baljsn::Encoder_AttributeVisitor::operator() |
( |
const TYPE & |
attribute, |
|
|
const ATTRIBUTE_INFO & |
attributeInfo |
|
) |
| |
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.