8#ifndef INCLUDED_S_BALTST_FEATURETESTMESSAGE
9#define INCLUDED_S_BALTST_FEATURETESTMESSAGE
43#include <bslalg_typetraits.h>
59#include <bsl_vector.h>
73#include <bsl_iosfwd.h>
74#include <bsl_limits.h>
78namespace bslma {
class Allocator; }
80namespace s_baltst {
class FeatureTestMessage; }
179#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
180 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
204#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
205 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
229#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
230 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
239#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
240 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
249#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
250 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
259#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
260 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
269#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
270 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
279#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
280 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
295#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
296 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
305#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
306 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
315#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
316 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
325#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
326 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
338 template <
typename t_MANIPULATOR>
421 bsl::ostream&
print(bsl::ostream& stream,
423 int spacesPerLevel = 4)
const;
433 template <
typename t_ACCESSOR>
562 return lhs.isEqualTo(rhs);
571 return !(lhs == rhs);
579 return rhs.print(stream, 0, -1);
602bool FeatureTestMessage::isEqualTo(
const FeatureTestMessage& rhs)
const
606 switch (
rhs.selectionId()) {
607 case Class::SELECTION_ID_SELECTION1:
608 return this->
selection1() == rhs.selection1();
609 case Class::SELECTION_ID_SELECTION2:
610 return this->
selection2() == rhs.selection2();
611 case Class::SELECTION_ID_SELECTION3:
612 return this->
selection3() == rhs.selection3();
613 case Class::SELECTION_ID_SELECTION4:
614 return this->
selection4() == rhs.selection4();
615 case Class::SELECTION_ID_SELECTION5:
616 return this->
selection5() == rhs.selection5();
617 case Class::SELECTION_ID_SELECTION6:
618 return this->
selection6() == rhs.selection6();
619 case Class::SELECTION_ID_SELECTION7:
620 return this->
selection7() == rhs.selection7();
621 case Class::SELECTION_ID_SELECTION8:
622 return this->
selection8() == rhs.selection8();
623 case Class::SELECTION_ID_SELECTION9:
624 return this->
selection9() == rhs.selection9();
625 case Class::SELECTION_ID_SELECTION10:
627 case Class::SELECTION_ID_SELECTION11:
642: d_selectionId(SELECTION_ID_UNDEFINED)
643, d_allocator_p(
bslma::Default::allocator(basicAllocator))
654template <
typename t_MANIPULATOR>
657 switch (d_selectionId) {
778 return d_selectionId;
781template <
typename t_ACCESSOR>
784 switch (d_selectionId) {
Definition bdlt_datetimetz.h:308
Definition bslstl_vector.h:1120
Definition bslma_allocator.h:545
Definition s_baltst_ratsnest.h:1011
Definition s_baltst_customstring.h:71
Definition s_baltst_featuretestmessage.h:87
s_baltst::Enumerated::Value & selection7()
Definition s_baltst_featuretestmessage.h:740
bool isSelection2Value() const
Definition s_baltst_featuretestmessage.h:908
s_baltst::Sequence2 & selection3()
Definition s_baltst_featuretestmessage.h:712
bool isUndefinedValue() const
Definition s_baltst_featuretestmessage.h:968
s_baltst::Choice3 & makeSelection8(const s_baltst::Choice3 &value)
friend bool operator!=(const FeatureTestMessage &lhs, const FeatureTestMessage &rhs)
Definition s_baltst_featuretestmessage.h:568
@ SELECTION_ID_SELECTION6
Definition s_baltst_featuretestmessage.h:120
@ SELECTION_ID_SELECTION7
Definition s_baltst_featuretestmessage.h:121
@ SELECTION_ID_SELECTION2
Definition s_baltst_featuretestmessage.h:116
@ SELECTION_ID_SELECTION9
Definition s_baltst_featuretestmessage.h:123
@ SELECTION_ID_SELECTION4
Definition s_baltst_featuretestmessage.h:118
@ SELECTION_ID_SELECTION10
Definition s_baltst_featuretestmessage.h:124
@ SELECTION_ID_SELECTION11
Definition s_baltst_featuretestmessage.h:125
@ SELECTION_ID_SELECTION3
Definition s_baltst_featuretestmessage.h:117
@ SELECTION_ID_UNDEFINED
Definition s_baltst_featuretestmessage.h:114
@ SELECTION_ID_SELECTION1
Definition s_baltst_featuretestmessage.h:115
@ SELECTION_ID_SELECTION5
Definition s_baltst_featuretestmessage.h:119
@ SELECTION_ID_SELECTION8
Definition s_baltst_featuretestmessage.h:122
int makeSelection(const char *name, int nameLength)
s_baltst::SequenceWithAnonymity & selection11()
Definition s_baltst_featuretestmessage.h:768
~FeatureTestMessage()
Destroy this object.
Definition s_baltst_featuretestmessage.h:648
s_baltst::Sequence3 & makeSelection4(const s_baltst::Sequence3 &value)
int selectionId() const
Definition s_baltst_featuretestmessage.h:776
FeatureTestMessage & operator=(const FeatureTestMessage &rhs)
Assign to this object the value of the specified rhs object.
bsls::ObjectBuffer< s_baltst::VoidSequence > d_selection9
Definition s_baltst_featuretestmessage.h:99
bool isSelection3Value() const
Definition s_baltst_featuretestmessage.h:914
int makeSelection(int selectionId)
friend bool operator==(const FeatureTestMessage &lhs, const FeatureTestMessage &rhs)
Definition s_baltst_featuretestmessage.h:559
friend bsl::ostream & operator<<(bsl::ostream &stream, const FeatureTestMessage &rhs)
Definition s_baltst_featuretestmessage.h:576
s_baltst::Sequence3 * d_selection4
Definition s_baltst_featuretestmessage.h:94
bsls::ObjectBuffer< bdlt::DatetimeTz > d_selection5
Definition s_baltst_featuretestmessage.h:95
bool isSelection9Value() const
Definition s_baltst_featuretestmessage.h:950
s_baltst::SequenceWithAnonymity & makeSelection11(const s_baltst::SequenceWithAnonymity &value)
s_baltst::Choice3 & makeSelection8()
s_baltst::UnsignedSequence & makeSelection10(const s_baltst::UnsignedSequence &value)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
bsls::ObjectBuffer< s_baltst::Choice3 > d_selection8
Definition s_baltst_featuretestmessage.h:98
FeatureTestMessage(const FeatureTestMessage &original, bslma::Allocator *basicAllocator=0)
s_baltst::Sequence2 & makeSelection3()
bsls::ObjectBuffer< bsl::vector< char > > d_selection2
Definition s_baltst_featuretestmessage.h:92
s_baltst::Sequence1 & makeSelection1()
bdlt::DatetimeTz & makeSelection5()
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
bsls::ObjectBuffer< s_baltst::UnsignedSequence > d_selection10
Definition s_baltst_featuretestmessage.h:100
static const char CLASS_NAME[]
Definition s_baltst_featuretestmessage.h:147
s_baltst::Sequence1 & selection1()
Definition s_baltst_featuretestmessage.h:698
bool isSelection1Value() const
Definition s_baltst_featuretestmessage.h:902
s_baltst::Choice3 & selection8()
Definition s_baltst_featuretestmessage.h:747
bool isSelection10Value() const
Definition s_baltst_featuretestmessage.h:956
bdlt::DatetimeTz & makeSelection5(const bdlt::DatetimeTz &value)
bool isSelection7Value() const
Definition s_baltst_featuretestmessage.h:938
s_baltst::UnsignedSequence & makeSelection10()
FeatureTestMessage(bslma::Allocator *basicAllocator=0)
Definition s_baltst_featuretestmessage.h:641
s_baltst::CustomString & selection6()
Definition s_baltst_featuretestmessage.h:733
bool isSelection11Value() const
Definition s_baltst_featuretestmessage.h:962
bdlt::DatetimeTz & selection5()
Definition s_baltst_featuretestmessage.h:726
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_featuretestmessage.h:782
s_baltst::VoidSequence & makeSelection9(const s_baltst::VoidSequence &value)
bsls::ObjectBuffer< s_baltst::CustomString > d_selection6
Definition s_baltst_featuretestmessage.h:96
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_featuretestmessage.h:149
s_baltst::Sequence2 & makeSelection3(const s_baltst::Sequence2 &value)
bsl::vector< char > & selection2()
Definition s_baltst_featuretestmessage.h:705
s_baltst::Enumerated::Value & makeSelection7(s_baltst::Enumerated::Value value)
s_baltst::CustomString & makeSelection6(const s_baltst::CustomString &value)
s_baltst::UnsignedSequence & selection10()
Definition s_baltst_featuretestmessage.h:761
bsls::ObjectBuffer< s_baltst::Sequence1 > d_selection1
Definition s_baltst_featuretestmessage.h:91
bsl::vector< char > & makeSelection2()
s_baltst::VoidSequence & makeSelection9()
bool isSelection4Value() const
Definition s_baltst_featuretestmessage.h:920
s_baltst::Enumerated::Value & makeSelection7()
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_featuretestmessage.h:655
s_baltst::Sequence1 & makeSelection1(const s_baltst::Sequence1 &value)
s_baltst::CustomString & makeSelection6()
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
bool isSelection8Value() const
Definition s_baltst_featuretestmessage.h:944
@ NUM_SELECTIONS
Definition s_baltst_featuretestmessage.h:129
s_baltst::Sequence3 & selection4()
Definition s_baltst_featuretestmessage.h:719
s_baltst::VoidSequence & selection9()
Definition s_baltst_featuretestmessage.h:754
bool isSelection6Value() const
Definition s_baltst_featuretestmessage.h:932
bool isSelection5Value() const
Definition s_baltst_featuretestmessage.h:926
s_baltst::Sequence3 & makeSelection4()
bsls::ObjectBuffer< s_baltst::Enumerated::Value > d_selection7
Definition s_baltst_featuretestmessage.h:97
bsls::ObjectBuffer< s_baltst::Sequence2 > d_selection3
Definition s_baltst_featuretestmessage.h:93
const char * selectionName() const
Return the symbolic name of the current selection of this object.
bsl::vector< char > & makeSelection2(const bsl::vector< char > &value)
bsls::ObjectBuffer< s_baltst::SequenceWithAnonymity > d_selection11
Definition s_baltst_featuretestmessage.h:101
s_baltst::SequenceWithAnonymity & makeSelection11()
@ SELECTION_INDEX_SELECTION10
Definition s_baltst_featuretestmessage.h:142
@ SELECTION_INDEX_SELECTION9
Definition s_baltst_featuretestmessage.h:141
@ SELECTION_INDEX_SELECTION5
Definition s_baltst_featuretestmessage.h:137
@ SELECTION_INDEX_SELECTION8
Definition s_baltst_featuretestmessage.h:140
@ SELECTION_INDEX_SELECTION3
Definition s_baltst_featuretestmessage.h:135
@ SELECTION_INDEX_SELECTION7
Definition s_baltst_featuretestmessage.h:139
@ SELECTION_INDEX_SELECTION1
Definition s_baltst_featuretestmessage.h:133
@ SELECTION_INDEX_SELECTION11
Definition s_baltst_featuretestmessage.h:143
@ SELECTION_INDEX_SELECTION2
Definition s_baltst_featuretestmessage.h:134
@ SELECTION_INDEX_SELECTION4
Definition s_baltst_featuretestmessage.h:136
@ SELECTION_INDEX_SELECTION6
Definition s_baltst_featuretestmessage.h:138
Definition s_baltst_ratsnest.h:2317
Definition s_baltst_ratsnest.h:2576
Definition s_baltst_ratsnest.h:95
Definition s_baltst_sequencewithanonymity.h:893
Definition s_baltst_unsignedsequence.h:69
Definition s_baltst_voidsequence.h:67
#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:268
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT_RCSID(tag, str)
BSLS_IDENT_RCSID() - insert ident str (specific to platform/compiler)
Definition bsls_ident.h:244
#define BSLS_IDENT_PRAGMA_ONCE
BSLS_IDENT_PRAGMA_ONCE - macro to avoid multiple inclusion
Definition bsls_ident.h:263
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
Definition baljsn_encoder_testtypes.h:76
Definition s_baltst_address.h:66
Definition bdlat_selectioninfo.h:138
Value
Definition s_baltst_enumerated.h:71
TYPE & object()
Definition bsls_objectbuffer.h:352