Quick Links: |
#include <baljsn_encoder.h>
Public Types | |
typedef int | FormattingMode |
Public Member Functions | |
Encoder_AttributeVisitor (Formatter *formatter, bsl::ostream *logStream, bool isNextAttributeFirst, const EncoderOptions &options) | |
template<class TYPE , class ATTRIBUTE_INFO > | |
int | operator() (const TYPE &attribute, const ATTRIBUTE_INFO &attributeInfo) |
bool | isNextAttributeFirst () const |
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.
typedef int baljsn::Encoder_AttributeVisitor::FormattingMode |
baljsn::Encoder_AttributeVisitor::Encoder_AttributeVisitor | ( | Formatter * | formatter, | |
bsl::ostream * | logStream, | |||
bool | isNextAttributeFirst, | |||
const EncoderOptions & | options | |||
) |
Construct an Encoder_AttributeVisitor
object having the specified formatter
, logStream
, isNextAttributeFirst
, and options
attributes.
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.
bool baljsn::Encoder_AttributeVisitor::isNextAttributeFirst | ( | ) | const |
Return the value of the isNextAttributeFirst
attribute of this object.