8#ifndef INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICES
9#define INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICES
43#include <bslalg_typetraits.h>
55#include <bsl_iosfwd.h>
56#include <bsl_limits.h>
60namespace s_baltst {
class MySequenceWithChoicesChoice1; }
61namespace s_baltst {
class MySequenceWithChoicesChoice2; }
62namespace s_baltst {
class MySequenceWithChoices; }
128#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
129 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
145#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
146 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
185 template <
typename t_MANIPULATOR>
214 bsl::ostream&
print(bsl::ostream& stream,
216 int spacesPerLevel = 4)
const;
226 template <
typename t_ACCESSOR>
266 return lhs.isEqualTo(rhs);
275 return !(lhs == rhs);
283 return rhs.print(stream, 0, -1);
358#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
359 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
375#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
376 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
415 template <
typename t_MANIPULATOR>
444 bsl::ostream&
print(bsl::ostream& stream,
446 int spacesPerLevel = 4)
const;
456 template <
typename t_ACCESSOR>
496 return lhs.isEqualTo(rhs);
505 return !(lhs == rhs);
513 return rhs.print(stream, 0, -1);
589 template <
typename t_MANIPULATOR>
598 template <
typename t_MANIPULATOR>
607 template <
typename t_MANIPULATOR>
634 bsl::ostream&
print(bsl::ostream& stream,
636 int spacesPerLevel = 4)
const;
644 template <
typename t_ACCESSOR>
652 template <
typename t_ACCESSOR>
661 template <
typename t_ACCESSOR>
664 int nameLength)
const;
682 return lhs.first() == rhs.first() &&
683 lhs.second() == rhs.second();
690 return !(lhs == rhs);
698 return rhs.print(stream, 0, -1);
723bool MySequenceWithChoicesChoice1::isEqualTo(
const MySequenceWithChoicesChoice1& rhs)
const
727 switch (rhs.selectionId()) {
728 case Class::SELECTION_ID_CHOICE_A:
729 return this->
choiceA() == rhs.choiceA();
730 case Class::SELECTION_ID_CHOICE_B:
731 return this->
choiceB() == rhs.choiceB();
733 BSLS_ASSERT(Class::SELECTION_ID_UNDEFINED == rhs.selectionId());
745: d_selectionId(SELECTION_ID_UNDEFINED)
756template <
typename t_MANIPULATOR>
759 switch (d_selectionId) {
790 return d_selectionId;
793template <
typename t_ACCESSOR>
796 switch (d_selectionId) {
853 switch (rhs.selectionId()) {
854 case Class::SELECTION_ID_CHOICE_C:
856 case Class::SELECTION_ID_CHOICE_D:
859 BSLS_ASSERT(Class::SELECTION_ID_UNDEFINED == rhs.selectionId());
871: d_selectionId(SELECTION_ID_UNDEFINED)
882template <
typename t_MANIPULATOR>
885 switch (d_selectionId) {
916 return d_selectionId;
919template <
typename t_ACCESSOR>
922 switch (d_selectionId) {
974template <
typename t_MANIPULATOR>
992template <
typename t_MANIPULATOR>
995 enum { NOT_FOUND = -1 };
1009template <
typename t_MANIPULATOR>
1011 t_MANIPULATOR& manipulator,
1015 enum { NOT_FOUND = -1 };
1019 if (0 == attributeInfo) {
1039template <
typename t_ACCESSOR>
1057template <
typename t_ACCESSOR>
1060 enum { NOT_FOUND = -1 };
1074template <
typename t_ACCESSOR>
1076 t_ACCESSOR& accessor,
1078 int nameLength)
const
1080 enum { NOT_FOUND = -1 };
1084 if (0 == attributeInfo) {
Definition s_baltst_mysequencewithchoices.h:69
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoices.h:103
bool isChoiceBValue() const
Definition s_baltst_mysequencewithchoices.h:830
const char * selectionName() const
Return the symbolic name of the current selection of this object.
bsls::ObjectBuffer< int > d_choiceB
Definition s_baltst_mysequencewithchoices.h:74
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoices.h:101
int & makeChoiceB(int value)
int makeSelection(const char *name, int nameLength)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
bool isUndefinedValue() const
Definition s_baltst_mysequencewithchoices.h:836
int & choiceA()
Definition s_baltst_mysequencewithchoices.h:773
bsls::ObjectBuffer< int > d_choiceA
Definition s_baltst_mysequencewithchoices.h:73
~MySequenceWithChoicesChoice1()
Destroy this object.
Definition s_baltst_mysequencewithchoices.h:750
MySequenceWithChoicesChoice1 & operator=(const MySequenceWithChoicesChoice1 &rhs)
Assign to this object the value of the specified rhs object.
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
friend bool operator!=(const MySequenceWithChoicesChoice1 &lhs, const MySequenceWithChoicesChoice1 &rhs)
Definition s_baltst_mysequencewithchoices.h:272
MySequenceWithChoicesChoice1()
Definition s_baltst_mysequencewithchoices.h:744
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoices.h:757
bool isChoiceAValue() const
Definition s_baltst_mysequencewithchoices.h:824
@ NUM_SELECTIONS
Definition s_baltst_mysequencewithchoices.h:92
int & makeChoiceA(int value)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithChoicesChoice1 &rhs)
Definition s_baltst_mysequencewithchoices.h:280
@ SELECTION_ID_CHOICE_B
Definition s_baltst_mysequencewithchoices.h:88
@ SELECTION_ID_CHOICE_A
Definition s_baltst_mysequencewithchoices.h:87
@ SELECTION_ID_UNDEFINED
Definition s_baltst_mysequencewithchoices.h:86
int makeSelection(int selectionId)
MySequenceWithChoicesChoice1(const MySequenceWithChoicesChoice1 &original)
int & choiceB()
Definition s_baltst_mysequencewithchoices.h:780
friend bool operator==(const MySequenceWithChoicesChoice1 &lhs, const MySequenceWithChoicesChoice1 &rhs)
Definition s_baltst_mysequencewithchoices.h:263
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoices.h:794
int selectionId() const
Definition s_baltst_mysequencewithchoices.h:788
@ SELECTION_INDEX_CHOICE_A
Definition s_baltst_mysequencewithchoices.h:96
@ SELECTION_INDEX_CHOICE_B
Definition s_baltst_mysequencewithchoices.h:97
Definition s_baltst_mysequencewithchoices.h:299
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoices.h:331
int makeSelection(int selectionId)
int makeSelection(const char *name, int nameLength)
bool isUndefinedValue() const
Definition s_baltst_mysequencewithchoices.h:962
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoices.h:333
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithChoicesChoice2 &rhs)
Definition s_baltst_mysequencewithchoices.h:510
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoices.h:920
int & makeChoiceD(int value)
@ SELECTION_INDEX_CHOICE_D
Definition s_baltst_mysequencewithchoices.h:327
@ SELECTION_INDEX_CHOICE_C
Definition s_baltst_mysequencewithchoices.h:326
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
~MySequenceWithChoicesChoice2()
Destroy this object.
Definition s_baltst_mysequencewithchoices.h:876
int selectionId() const
Definition s_baltst_mysequencewithchoices.h:914
friend bool operator==(const MySequenceWithChoicesChoice2 &lhs, const MySequenceWithChoicesChoice2 &rhs)
Definition s_baltst_mysequencewithchoices.h:493
int & makeChoiceC(int value)
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoices.h:883
MySequenceWithChoicesChoice2 & operator=(const MySequenceWithChoicesChoice2 &rhs)
Assign to this object the value of the specified rhs object.
int & choiceC()
Definition s_baltst_mysequencewithchoices.h:899
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
const char * selectionName() const
Return the symbolic name of the current selection of this object.
MySequenceWithChoicesChoice2(const MySequenceWithChoicesChoice2 &original)
bsls::ObjectBuffer< int > d_choiceD
Definition s_baltst_mysequencewithchoices.h:304
MySequenceWithChoicesChoice2()
Definition s_baltst_mysequencewithchoices.h:870
bool isChoiceCValue() const
Definition s_baltst_mysequencewithchoices.h:950
bsls::ObjectBuffer< int > d_choiceC
Definition s_baltst_mysequencewithchoices.h:303
int & choiceD()
Definition s_baltst_mysequencewithchoices.h:906
bool isChoiceDValue() const
Definition s_baltst_mysequencewithchoices.h:956
friend bool operator!=(const MySequenceWithChoicesChoice2 &lhs, const MySequenceWithChoicesChoice2 &rhs)
Definition s_baltst_mysequencewithchoices.h:502
@ NUM_SELECTIONS
Definition s_baltst_mysequencewithchoices.h:322
@ SELECTION_ID_UNDEFINED
Definition s_baltst_mysequencewithchoices.h:316
@ SELECTION_ID_CHOICE_C
Definition s_baltst_mysequencewithchoices.h:317
@ SELECTION_ID_CHOICE_D
Definition s_baltst_mysequencewithchoices.h:318
Definition s_baltst_mysequencewithchoices.h:529
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoices.h:552
@ ATTRIBUTE_ID_FIRST
Definition s_baltst_mysequencewithchoices.h:538
@ ATTRIBUTE_ID_SECOND
Definition s_baltst_mysequencewithchoices.h:539
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithchoices.h:993
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoices.h:1040
MySequenceWithChoicesChoice2 & second()
Definition s_baltst_mysequencewithchoices.h:1033
friend bool operator==(const MySequenceWithChoices &lhs, const MySequenceWithChoices &rhs)
Definition s_baltst_mysequencewithchoices.h:679
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithchoices.h:543
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoices.h:975
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithChoices &rhs)
Definition s_baltst_mysequencewithchoices.h:695
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
@ ATTRIBUTE_INDEX_SECOND
Definition s_baltst_mysequencewithchoices.h:548
@ ATTRIBUTE_INDEX_FIRST
Definition s_baltst_mysequencewithchoices.h:547
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
friend bool operator!=(const MySequenceWithChoices &lhs, const MySequenceWithChoices &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithchoices.h:687
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoices.h:554
MySequenceWithChoicesChoice1 & first()
Definition s_baltst_mysequencewithchoices.h:1027
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithchoices.h:1058
#define BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:261
#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:294
#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 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