8#ifndef INCLUDED_S_BALTST_MYSEQUENCEWITHANONYMOUSCHOICE
9#define INCLUDED_S_BALTST_MYSEQUENCEWITHANONYMOUSCHOICE
43#include <bslalg_typetraits.h>
59#include <bsl_string.h>
61#include <bsl_iosfwd.h>
62#include <bsl_limits.h>
66namespace bslma {
class Allocator; }
68namespace s_baltst {
class MySequenceWithAnonymousChoiceChoice; }
69namespace s_baltst {
class MySequenceWithAnonymousChoice; }
142#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
143 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
168#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
169 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
199#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
200 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
212 template <
typename t_MANIPULATOR>
241 bsl::ostream&
print(bsl::ostream& stream,
243 int spacesPerLevel = 4)
const;
253 template <
typename t_ACCESSOR>
293 return lhs.isEqualTo(rhs);
302 return !(lhs == rhs);
308 bsl::ostream& stream,
311 return rhs.print(stream, 0, -1);
386#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
387 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
412#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
413 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
430 template <
typename t_MANIPULATOR>
439 template <
typename t_MANIPULATOR>
448 template <
typename t_MANIPULATOR>
479 bsl::ostream&
print(bsl::ostream& stream,
481 int spacesPerLevel = 4)
const;
489 template <
typename t_ACCESSOR>
497 template <
typename t_ACCESSOR>
506 template <
typename t_ACCESSOR>
509 int nameLength)
const;
531 return lhs.attribute1() == rhs.attribute1() &&
532 lhs.choice() == rhs.choice() &&
533 lhs.attribute2() == rhs.attribute2();
540 return !(lhs == rhs);
546 bsl::ostream& stream,
549 return rhs.print(stream, 0, -1);
574bool MySequenceWithAnonymousChoiceChoice::isEqualTo(
const MySequenceWithAnonymousChoiceChoice& rhs)
const
576 typedef MySequenceWithAnonymousChoiceChoice Class;
578 switch (rhs.selectionId()) {
579 case Class::SELECTION_ID_MY_CHOICE1:
580 return this->
myChoice1() == rhs.myChoice1();
581 case Class::SELECTION_ID_MY_CHOICE2:
582 return this->
myChoice2() == rhs.myChoice2();
584 BSLS_ASSERT(Class::SELECTION_ID_UNDEFINED == rhs.selectionId());
596: d_selectionId(SELECTION_ID_UNDEFINED)
597, d_allocator_p(
bslma::Default::allocator(basicAllocator))
608template <
typename t_MANIPULATOR>
611 switch (d_selectionId) {
642 return d_selectionId;
645template <
typename t_ACCESSOR>
648 switch (d_selectionId) {
700template <
typename t_MANIPULATOR>
723template <
typename t_MANIPULATOR>
726 enum { NOT_FOUND = -1 };
743template <
typename t_MANIPULATOR>
745 t_MANIPULATOR& manipulator,
749 enum { NOT_FOUND = -1 };
753 if (0 == attributeInfo) {
779template <
typename t_ACCESSOR>
802template <
typename t_ACCESSOR>
805 enum { NOT_FOUND = -1 };
822template <
typename t_ACCESSOR>
824 t_ACCESSOR& accessor,
826 int nameLength)
const
828 enum { NOT_FOUND = -1 };
832 if (0 == attributeInfo) {
Definition bdlb_nullablevalue.h:262
Definition bslstl_string.h:1252
Definition bslma_allocator.h:545
Definition s_baltst_mysequencewithanonymouschoice.h:76
bsls::ObjectBuffer< int > d_myChoice1
Definition s_baltst_mysequencewithanonymouschoice.h:80
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithanonymouschoice.h:646
bsl::string & makeMyChoice2()
bsls::ObjectBuffer< bsl::string > d_myChoice2
Definition s_baltst_mysequencewithanonymouschoice.h:81
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithanonymouschoice.h:109
const char * selectionName() const
Return the symbolic name of the current selection of this object.
@ NUM_SELECTIONS
Definition s_baltst_mysequencewithanonymouschoice.h:100
int makeSelection(int selectionId)
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
@ SELECTION_INDEX_MY_CHOICE2
Definition s_baltst_mysequencewithanonymouschoice.h:105
@ SELECTION_INDEX_MY_CHOICE1
Definition s_baltst_mysequencewithanonymouschoice.h:104
bool isMyChoice2Value() const
Definition s_baltst_mysequencewithanonymouschoice.h:682
bsl::string & myChoice2()
Definition s_baltst_mysequencewithanonymouschoice.h:632
MySequenceWithAnonymousChoiceChoice(bslma::Allocator *basicAllocator=0)
Definition s_baltst_mysequencewithanonymouschoice.h:595
bool isMyChoice1Value() const
Definition s_baltst_mysequencewithanonymouschoice.h:676
~MySequenceWithAnonymousChoiceChoice()
Destroy this object.
Definition s_baltst_mysequencewithanonymouschoice.h:602
int selectionId() const
Definition s_baltst_mysequencewithanonymouschoice.h:640
int & myChoice1()
Definition s_baltst_mysequencewithanonymouschoice.h:625
int makeSelection(const char *name, int nameLength)
friend bool operator!=(const MySequenceWithAnonymousChoiceChoice &lhs, const MySequenceWithAnonymousChoiceChoice &rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:299
MySequenceWithAnonymousChoiceChoice & operator=(const MySequenceWithAnonymousChoiceChoice &rhs)
Assign to this object the value of the specified rhs object.
bool isUndefinedValue() const
Definition s_baltst_mysequencewithanonymouschoice.h:688
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithanonymouschoice.h:609
MySequenceWithAnonymousChoiceChoice(const MySequenceWithAnonymousChoiceChoice &original, bslma::Allocator *basicAllocator=0)
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_mysequencewithanonymouschoice.h:111
bsl::string & makeMyChoice2(const bsl::string &value)
friend bool operator==(const MySequenceWithAnonymousChoiceChoice &lhs, const MySequenceWithAnonymousChoiceChoice &rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:290
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithAnonymousChoiceChoice &rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:307
int & makeMyChoice1(int value)
@ SELECTION_ID_UNDEFINED
Definition s_baltst_mysequencewithanonymouschoice.h:94
@ SELECTION_ID_MY_CHOICE1
Definition s_baltst_mysequencewithanonymouschoice.h:95
@ SELECTION_ID_MY_CHOICE2
Definition s_baltst_mysequencewithanonymouschoice.h:96
Definition s_baltst_mysequencewithanonymouschoice.h:327
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithanonymouschoice.h:803
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithanonymouschoice.h:355
MySequenceWithAnonymousChoice & operator=(const MySequenceWithAnonymousChoice &rhs)
Assign to this object the value of the specified rhs object.
friend bool operator!=(const MySequenceWithAnonymousChoice &lhs, const MySequenceWithAnonymousChoice &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:537
MySequenceWithAnonymousChoice(const MySequenceWithAnonymousChoice &original, bslma::Allocator *basicAllocator=0)
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithanonymouschoice.h:701
friend bool operator==(const MySequenceWithAnonymousChoice &lhs, const MySequenceWithAnonymousChoice &rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:528
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithanonymouschoice.h:337
@ ATTRIBUTE_ID_CHOICE
Definition s_baltst_mysequencewithanonymouschoice.h:338
@ ATTRIBUTE_ID_ATTRIBUTE2
Definition s_baltst_mysequencewithanonymouschoice.h:339
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithAnonymousChoice &rhs)
Definition s_baltst_mysequencewithanonymouschoice.h:545
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithanonymouschoice.h:353
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
~MySequenceWithAnonymousChoice()
Destroy this object.
MySequenceWithAnonymousChoiceChoice & choice()
Definition s_baltst_mysequencewithanonymouschoice.h:767
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithanonymouschoice.h:724
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithanonymouschoice.h:343
@ ATTRIBUTE_INDEX_ATTRIBUTE2
Definition s_baltst_mysequencewithanonymouschoice.h:349
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithanonymouschoice.h:347
@ ATTRIBUTE_INDEX_CHOICE
Definition s_baltst_mysequencewithanonymouschoice.h:348
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithanonymouschoice.h:780
MySequenceWithAnonymousChoice(bslma::Allocator *basicAllocator=0)
bdlb::NullableValue< int > & attribute1()
Definition s_baltst_mysequencewithanonymouschoice.h:761
bdlb::NullableValue< bsl::string > & attribute2()
Definition s_baltst_mysequencewithanonymouschoice.h:773
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:268
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:301
#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
Definition baljsn_encoder_testtypes.h:76
Definition s_baltst_address.h:66
Definition bdlat_attributeinfo.h:139
int d_id
Definition bdlat_attributeinfo.h:142
Definition bdlat_selectioninfo.h:138
Definition bdlat_typetraits.h:146
TYPE & object()
Definition bsls_objectbuffer.h:352