16#ifndef INCLUDED_RMQT_FIELDVALUE
17#define INCLUDED_RMQT_FIELDVALUE
19#include <rmqt_shortstring.h>
21#include <bdlb_variant.h>
22#include <bdlt_datetime.h>
23#include <bsls_compilerfeatures.h>
25#include <bsl_cstdint.h>
27#include <bsl_memory.h>
28#include <bsl_ostream.h>
29#include <bsl_string.h>
30#include <bsl_utility.h>
31#include <bsl_vector.h>
33#ifdef BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS
34#include <bsl_initializer_list.h>
37namespace BloombergLP {
70typedef bdlb::Variant<bool,
82 bsl::vector<bsl::uint8_t>,
83 bsl::shared_ptr<FieldArray>,
85 bsl::shared_ptr<FieldTable> >
93 explicit FieldArray(
const bsl::vector<FieldValue>& array);
95#ifdef BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS
96 FieldArray(bsl::initializer_list<FieldValue> items);
98 static bsl::shared_ptr<FieldArray> make(bsl::initializer_list<FieldValue>);
108struct FieldTable :
public bsl::map<bsl::string, FieldValue> {
111 explicit FieldTable(
const bsl::map<bsl::string, FieldValue>& t);
113#ifdef BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS
115 bsl::initializer_list<bsl::pair<const bsl::string, FieldValue> > items);
117 static bsl::shared_ptr<FieldTable>
118 make(bsl::initializer_list<bsl::pair<const bsl::string, FieldValue> >);
122 print(bsl::ostream& stream,
int level,
int spacesPerLevel)
const;
125bool operator==(
const rmqt::FieldValue& left,
const rmqt::FieldValue& right);
126bool operator!=(
const rmqt::FieldValue& left,
const rmqt::FieldValue& right);
128bsl::ostream& operator<<(bsl::ostream& os,
const FieldTable& table);
129bsl::ostream& operator<<(bsl::ostream& os,
130 const bsl::shared_ptr<FieldTable>& table);
131bsl::ostream& operator<<(bsl::ostream& os,
const FieldValue& value);
Represents AMQP 0.9.1 Field Array (list of FieldValues)
Definition: rmqt_fieldvalue.h:91
Represents AMQP 0.9.1 Field Table (dict of FieldValues)
Definition: rmqt_fieldvalue.h:108