#include <baljsn_encoder.h>
List of all members.
Public Types |
typedef int | FormattingMode |
Public Member Functions |
| Encoder_SelectionDispatcher (Formatter *formatter, bsl::ostream *logStream, const bsl::string_view &selectionName, FormattingMode formattingMode, bool isNextObjectFirst, const EncoderOptions &options) |
template<class TYPE > |
int | operator() (const TYPE &selection, bdlat_TypeCategory::CustomizedType category) |
template<class TYPE > |
int | operator() (const TYPE &selection, bdlat_TypeCategory::DynamicType category) |
template<class TYPE , class CATEGORY > |
int | operator() (const TYPE &selection, CATEGORY category) |
template<class TYPE > |
int | operator() (const TYPE &, bslmf::Nil) |
bool | isNextObjectFirst () 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 a "selection" object that satisfies one of the bdlat
type-category concepts, and an optional bdlat_TypeCategory
tag type that corresponds to the selections's bdlat
type category. Each function-call-operator overload encodes a JSON representation of the specified selection to the formatter
supplied on construction.
See Component baljsn_encoder
Member Typedef Documentation
Constructor & Destructor Documentation
baljsn::Encoder_SelectionDispatcher::Encoder_SelectionDispatcher |
( |
Formatter * |
formatter, |
|
|
bsl::ostream * |
logStream, |
|
|
const bsl::string_view & |
selectionName, |
|
|
FormattingMode |
formattingMode, |
|
|
bool |
isNextObjectFirst, |
|
|
const EncoderOptions & |
options | |
|
) |
| | |
Member Function Documentation
template<class TYPE , class CATEGORY >
int baljsn::Encoder_SelectionDispatcher::operator() |
( |
const TYPE & |
selection, |
|
|
CATEGORY |
category | |
|
) |
| | |
Encode the JSON representation of the specified selection
, having the name equal to the name
attribute of the specified selectionInfo
to the JSON formatter
attribute of this object, according to the specified formattingMode
. If the representation contains no text and isFirstSubObject
is true
, load the value true
into the specified isNextObjectFirst
, and the value false
otherwise. If isFirstSubObject
is true
, then the representation of the selection 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 selection
. 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 selection
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 selection
. See the package-level documentation of bdlat
for an introduction to the requirements of bdlat
type-category concepts.
template<class TYPE >
int baljsn::Encoder_SelectionDispatcher::operator() |
( |
const TYPE & |
, |
|
|
bslmf::Nil |
| |
|
) |
| | |
The behavior of this function is undefined.
bool baljsn::Encoder_SelectionDispatcher::isNextObjectFirst |
( |
|
) |
const |
Return the value of the isNextElementFirst
attribute of this object.
The documentation for this class was generated from the following file: