Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions

baljsn::Encoder_AttributeDispatcher Class Reference

#include <baljsn_encoder.h>

List of all members.

Public Types

typedef int FormattingMode

Public Member Functions

 Encoder_AttributeDispatcher (Formatter *formatter, bsl::ostream *logStream, const bsl::string_view &attributeName, FormattingMode formattingMode, bool isNextAttributeFirst, const EncoderOptions &options)
int operator() (const bsl::vector< char > &attribute, bdlat_TypeCategory::Array category)
template<class TYPE >
int operator() (const TYPE &attribute, bdlat_TypeCategory::Array category)
template<class TYPE >
int operator() (const TYPE &attribute, bdlat_TypeCategory::CustomizedType category)
template<class TYPE >
int operator() (const TYPE &attribute, bdlat_TypeCategory::DynamicType category)
template<class TYPE >
int operator() (const TYPE &attribute, bdlat_TypeCategory::NullableValue category)
template<class TYPE , class CATEGORY >
int operator() (const TYPE &attribute, CATEGORY category)
template<class TYPE >
int operator() (const TYPE &, bslmf::Nil)
bool isNextAttributeFirst () const

Detailed Description

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 optional bdlat_TypeCategory tag type that corresponds to the attribute's bdlat type category. Each function-call-operator overload encodes a JSON representation of the specified attribute to the formatter supplied on construction.

See Component baljsn_encoder


Member Typedef Documentation


Constructor & Destructor Documentation

baljsn::Encoder_AttributeDispatcher::Encoder_AttributeDispatcher ( Formatter formatter,
bsl::ostream *  logStream,
const bsl::string_view &  attributeName,
FormattingMode  formattingMode,
bool  isNextAttributeFirst,
const EncoderOptions options 
)

Construct an Encoder_AttributeDispatcher object having the specified formatter, logStream, attributeName, formattingMode, isNextAttributeFirst, and options attributes.


Member Function Documentation

int baljsn::Encoder_AttributeDispatcher::operator() ( const bsl::vector< char > &  attribute,
bdlat_TypeCategory::Array  category 
)
template<class TYPE >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  attribute,
bdlat_TypeCategory::Array  category 
)
template<class TYPE >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  attribute,
bdlat_TypeCategory::CustomizedType  category 
)
template<class TYPE >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  attribute,
bdlat_TypeCategory::DynamicType  category 
)
template<class TYPE >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  attribute,
bdlat_TypeCategory::NullableValue  category 
)
template<class TYPE , class CATEGORY >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  attribute,
CATEGORY  category 
)

Encode the JSON representation of the specified attribute, having the name equal to the name of the attributeInfo attribute of this object, 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.

template<class TYPE >
int baljsn::Encoder_AttributeDispatcher::operator() ( const TYPE &  ,
bslmf::Nil   
)

The behavior of this function is undefined.

bool baljsn::Encoder_AttributeDispatcher::isNextAttributeFirst (  )  const

Return the value of the isNextAttributeFirst attribute of this object.


The documentation for this class was generated from the following file: