BDE 4.14.0 Production release
Loading...
Searching...
No Matches
s_baltst_mysequencewithchoicearray.h
Go to the documentation of this file.
1/// @file s_baltst_mysequencewithchoicearray.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// s_baltst_mysequencewithchoicearray.h *DO NOT EDIT* @generated -*-C++-*-
8#ifndef INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICEARRAY
9#define INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICEARRAY
10
11#include <bsls_ident.h>
12BSLS_IDENT_RCSID(s_baltst_mysequencewithchoicearray_h, "$Id$ $CSID$")
14
15/// @defgroup s_baltst_mysequencewithchoicearray s_baltst_mysequencewithchoicearray
16/// @brief Provide value-semantic attribute classes
17/// @addtogroup Standalones
18/// @{
19/// @addtogroup s_baltst
20/// @{
21/// @addtogroup s_baltst_mysequencewithchoicearray
22/// @{
23///
24/// <h1> Outline </h1>
25/// * <a href="#s_baltst_mysequencewithchoicearray-purpose"> Purpose</a>
26///
27/// # Purpose {#s_baltst_mysequencewithchoicearray-purpose}
28/// Provide value-semantic attribute classes
29/// @}
30/** @} */
31/** @} */
32
33/** @addtogroup Standalones
34 * @{
35 */
36/** @addtogroup s_baltst
37 * @{
38 */
39/** @addtogroup s_baltst_mysequencewithchoicearray
40 * @{
41 */
42
43#include <bslalg_typetraits.h>
44
45#include <bdlat_attributeinfo.h>
46
47#include <bdlat_selectioninfo.h>
48
49#include <bdlat_typetraits.h>
50
51#include <bsls_objectbuffer.h>
52
53#include <bslma_default.h>
54
55#include <bsls_assert.h>
56
57#include <bsl_vector.h>
58
59#include <bsl_iosfwd.h>
60#include <bsl_limits.h>
61
62
63
64namespace bslma { class Allocator; }
65
66namespace s_baltst { class MySequenceWithChoiceArrayChoice; }
67namespace s_baltst { class MySequenceWithChoiceArray; }
68namespace s_baltst {
69
70 // =====================================
71 // class MySequenceWithChoiceArrayChoice
72 // =====================================
73
75
76 // INSTANCE DATA
77 union {
80 };
81
82 int d_selectionId;
83
84 public:
85 // TYPES
86
87 enum {
91 };
92
93 enum {
95 };
96
97 enum {
100 };
101
102 // CONSTANTS
103 static const char CLASS_NAME[];
104
106
107 // CLASS METHODS
108
109 /// Return selection information for the selection indicated by the
110 /// specified `id` if the selection exists, and 0 otherwise.
112
113 /// Return selection information for the selection indicated by the
114 /// specified `name` of the specified `nameLength` if the selection
115 /// exists, and 0 otherwise.
117 const char *name,
118 int nameLength);
119
120 // CREATORS
121
122 /// Create an object of type `MySequenceWithChoiceArrayChoice` having
123 /// the default value.
125
126 /// Create an object of type `MySequenceWithChoiceArrayChoice` having
127 /// the value of the specified `original` object.
129
130#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
131 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
132 /// Create an object of type `MySequenceWithChoiceArrayChoice` having
133 /// the value of the specified `original` object. After performing this
134 /// action, the `original` object will be left in a valid, but
135 /// unspecified state.
137#endif
138
139 /// Destroy this object.
141
142 // MANIPULATORS
143
144 /// Assign to this object the value of the specified `rhs` object.
146
147#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
148 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
149 /// Assign to this object the value of the specified `rhs` object.
150 /// After performing this action, the `rhs` object will be left in a
151 /// valid, but unspecified state.
153#endif
154
155 /// Reset this object to the default value (i.e., its value upon default
156 /// construction).
157 void reset();
158
159 /// Set the value of this object to be the default for the selection
160 /// indicated by the specified `selectionId`. Return 0 on success, and
161 /// non-zero value otherwise (i.e., the selection is not found).
163
164 /// Set the value of this object to be the default for the selection
165 /// indicated by the specified `name` of the specified `nameLength`.
166 /// Return 0 on success, and non-zero value otherwise (i.e., the
167 /// selection is not found).
168 int makeSelection(const char *name, int nameLength);
169
170 /// Set the value of this object to be a "ChoiceA" value. Optionally
171 /// specify the `value` of the "ChoiceA". If `value` is not specified,
172 /// the default "ChoiceA" value is used.
174 int& makeChoiceA(int value);
175
176 /// Set the value of this object to be a "ChoiceB" value. Optionally
177 /// specify the `value` of the "ChoiceB". If `value` is not specified,
178 /// the default "ChoiceB" value is used.
180 int& makeChoiceB(int value);
181
182 /// Invoke the specified `manipulator` on the address of the modifiable
183 /// selection, supplying `manipulator` with the corresponding selection
184 /// information structure. Return the value returned from the
185 /// invocation of `manipulator` if this object has a defined selection,
186 /// and -1 otherwise.
187 template<class MANIPULATOR>
188 int manipulateSelection(MANIPULATOR& manipulator);
189
190 /// Return a reference to the modifiable "ChoiceA" selection of this
191 /// object if "ChoiceA" is the current selection. The behavior is
192 /// undefined unless "ChoiceA" is the selection of this object.
193 int& choiceA();
194
195 /// Return a reference to the modifiable "ChoiceB" selection of this
196 /// object if "ChoiceB" is the current selection. The behavior is
197 /// undefined unless "ChoiceB" is the selection of this object.
198 int& choiceB();
199
200 // ACCESSORS
201
202 /// Format this object to the specified output `stream` at the
203 /// optionally specified indentation `level` and return a reference to
204 /// the modifiable `stream`. If `level` is specified, optionally
205 /// specify `spacesPerLevel`, the number of spaces per indentation level
206 /// for this and all of its nested objects. Each line is indented by
207 /// the absolute value of `level * spacesPerLevel`. If `level` is
208 /// negative, suppress indentation of the first line. If
209 /// `spacesPerLevel` is negative, suppress line breaks and format the
210 /// entire output on one line. If `stream` is initially invalid, this
211 /// operation has no effect. Note that a trailing newline is provided
212 /// in multiline mode only.
213 bsl::ostream& print(bsl::ostream& stream,
214 int level = 0,
215 int spacesPerLevel = 4) const;
216
217 /// Return the id of the current selection if the selection is defined,
218 /// and -1 otherwise.
219 int selectionId() const;
220
221 /// Invoke the specified `accessor` on the non-modifiable selection,
222 /// supplying `accessor` with the corresponding selection information
223 /// structure. Return the value returned from the invocation of
224 /// `accessor` if this object has a defined selection, and -1 otherwise.
225 template<class ACCESSOR>
226 int accessSelection(ACCESSOR& accessor) const;
227
228 /// Return a reference to the non-modifiable "ChoiceA" selection of this
229 /// object if "ChoiceA" is the current selection. The behavior is
230 /// undefined unless "ChoiceA" is the selection of this object.
231 const int& choiceA() const;
232
233 /// Return a reference to the non-modifiable "ChoiceB" selection of this
234 /// object if "ChoiceB" is the current selection. The behavior is
235 /// undefined unless "ChoiceB" is the selection of this object.
236 const int& choiceB() const;
237
238 /// Return `true` if the value of this object is a "ChoiceA" value, and
239 /// return `false` otherwise.
240 bool isChoiceAValue() const;
241
242 /// Return `true` if the value of this object is a "ChoiceB" value, and
243 /// return `false` otherwise.
244 bool isChoiceBValue() const;
245
246 /// Return `true` if the value of this object is undefined, and `false`
247 /// otherwise.
248 bool isUndefinedValue() const;
249
250 /// Return the symbolic name of the current selection of this object.
251 const char *selectionName() const;
252};
253
254// FREE OPERATORS
255
256/// Return `true` if the specified `lhs` and `rhs` objects have the same
257/// value, and `false` otherwise. Two `MySequenceWithChoiceArrayChoice` objects have the same
258/// value if either the selections in both objects have the same ids and
259/// the same values, or both selections are undefined.
260inline
262
263/// Return `true` if the specified `lhs` and `rhs` objects do not have the
264/// same values, as determined by `operator==`, and `false` otherwise.
265inline
267
268/// Format the specified `rhs` to the specified output `stream` and
269/// return a reference to the modifiable `stream`.
270inline
271bsl::ostream& operator<<(bsl::ostream& stream, const MySequenceWithChoiceArrayChoice& rhs);
272
273} // close package namespace
274
275// TRAITS
276
278
279namespace s_baltst {
280
281 // ===============================
282 // class MySequenceWithChoiceArray
283 // ===============================
284
286
287 // INSTANCE DATA
289
290 public:
291 // TYPES
292 enum {
294 };
295
296 enum {
298 };
299
300 enum {
302 };
303
304 // CONSTANTS
305 static const char CLASS_NAME[];
306
308
309 public:
310 // CLASS METHODS
311
312 /// Return attribute information for the attribute indicated by the
313 /// specified `id` if the attribute exists, and 0 otherwise.
315
316 /// Return attribute information for the attribute indicated by the
317 /// specified `name` of the specified `nameLength` if the attribute
318 /// exists, and 0 otherwise.
320 const char *name,
321 int nameLength);
322
323 // CREATORS
324
325 /// Create an object of type `MySequenceWithChoiceArray` having the
326 /// default value. Use the optionally specified `basicAllocator` to
327 /// supply memory. If `basicAllocator` is 0, the currently installed
328 /// default allocator is used.
329 explicit MySequenceWithChoiceArray(bslma::Allocator *basicAllocator = 0);
330
331 /// Create an object of type `MySequenceWithChoiceArray` having the
332 /// value of the specified `original` object. Use the optionally
333 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
334 /// 0, the currently installed default allocator is used.
336 bslma::Allocator *basicAllocator = 0);
337
338#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
339 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
340 /// Create an object of type `MySequenceWithChoiceArray` having the
341 /// value of the specified `original` object. After performing this
342 /// action, the `original` object will be left in a valid, but
343 /// unspecified state.
345
346 /// Create an object of type `MySequenceWithChoiceArray` having the
347 /// value of the specified `original` object. After performing this
348 /// action, the `original` object will be left in a valid, but
349 /// unspecified state. Use the optionally specified `basicAllocator` to
350 /// supply memory. If `basicAllocator` is 0, the currently installed
351 /// default allocator is used.
353 bslma::Allocator *basicAllocator);
354#endif
355
356 /// Destroy this object.
358
359 // MANIPULATORS
360
361 /// Assign to this object the value of the specified `rhs` object.
363
364#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
365 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
366 /// Assign to this object the value of the specified `rhs` object.
367 /// After performing this action, the `rhs` object will be left in a
368 /// valid, but unspecified state.
370#endif
371
372 /// Reset this object to the default value (i.e., its value upon
373 /// default construction).
374 void reset();
375
376 /// Invoke the specified `manipulator` sequentially on the address of
377 /// each (modifiable) attribute of this object, supplying `manipulator`
378 /// with the corresponding attribute information structure until such
379 /// invocation returns a non-zero value. Return the value from the
380 /// last invocation of `manipulator` (i.e., the invocation that
381 /// terminated the sequence).
382 template<class MANIPULATOR>
383 int manipulateAttributes(MANIPULATOR& manipulator);
384
385 /// Invoke the specified `manipulator` on the address of
386 /// the (modifiable) attribute indicated by the specified `id`,
387 /// supplying `manipulator` with the corresponding attribute
388 /// information structure. Return the value returned from the
389 /// invocation of `manipulator` if `id` identifies an attribute of this
390 /// class, and -1 otherwise.
391 template<class MANIPULATOR>
392 int manipulateAttribute(MANIPULATOR& manipulator, int id);
393
394 /// Invoke the specified `manipulator` on the address of
395 /// the (modifiable) attribute indicated by the specified `name` of the
396 /// specified `nameLength`, supplying `manipulator` with the
397 /// corresponding attribute information structure. Return the value
398 /// returned from the invocation of `manipulator` if `name` identifies
399 /// an attribute of this class, and -1 otherwise.
400 template<class MANIPULATOR>
401 int manipulateAttribute(MANIPULATOR& manipulator,
402 const char *name,
403 int nameLength);
404
405 /// Return a reference to the modifiable "Choices" attribute of this
406 /// object.
408
409 // ACCESSORS
410
411 /// Format this object to the specified output `stream` at the
412 /// optionally specified indentation `level` and return a reference to
413 /// the modifiable `stream`. If `level` is specified, optionally
414 /// specify `spacesPerLevel`, the number of spaces per indentation level
415 /// for this and all of its nested objects. Each line is indented by
416 /// the absolute value of `level * spacesPerLevel`. If `level` is
417 /// negative, suppress indentation of the first line. If
418 /// `spacesPerLevel` is negative, suppress line breaks and format the
419 /// entire output on one line. If `stream` is initially invalid, this
420 /// operation has no effect. Note that a trailing newline is provided
421 /// in multiline mode only.
422 bsl::ostream& print(bsl::ostream& stream,
423 int level = 0,
424 int spacesPerLevel = 4) const;
425
426 /// Invoke the specified `accessor` sequentially on each
427 /// (non-modifiable) attribute of this object, supplying `accessor`
428 /// with the corresponding attribute information structure until such
429 /// invocation returns a non-zero value. Return the value from the
430 /// last invocation of `accessor` (i.e., the invocation that terminated
431 /// the sequence).
432 template<class ACCESSOR>
433 int accessAttributes(ACCESSOR& accessor) const;
434
435 /// Invoke the specified `accessor` on the (non-modifiable) attribute
436 /// of this object indicated by the specified `id`, supplying `accessor`
437 /// with the corresponding attribute information structure. Return the
438 /// value returned from the invocation of `accessor` if `id` identifies
439 /// an attribute of this class, and -1 otherwise.
440 template<class ACCESSOR>
441 int accessAttribute(ACCESSOR& accessor, int id) const;
442
443 /// Invoke the specified `accessor` on the (non-modifiable) attribute
444 /// of this object indicated by the specified `name` of the specified
445 /// `nameLength`, supplying `accessor` with the corresponding attribute
446 /// information structure. Return the value returned from the
447 /// invocation of `accessor` if `name` identifies an attribute of this
448 /// class, and -1 otherwise.
449 template<class ACCESSOR>
450 int accessAttribute(ACCESSOR& accessor,
451 const char *name,
452 int nameLength) const;
453
454 /// Return a reference offering non-modifiable access to the "Choices"
455 /// attribute of this object.
457};
458
459// FREE OPERATORS
460
461/// Return `true` if the specified `lhs` and `rhs` attribute objects have
462/// the same value, and `false` otherwise. Two attribute objects have the
463/// same value if each respective attribute has the same value.
464inline
465bool operator==(const MySequenceWithChoiceArray& lhs, const MySequenceWithChoiceArray& rhs);
466
467/// Return `true` if the specified `lhs` and `rhs` attribute objects do not
468/// have the same value, and `false` otherwise. Two attribute objects do
469/// not have the same value if one or more respective attributes differ in
470/// values.
471inline
472bool operator!=(const MySequenceWithChoiceArray& lhs, const MySequenceWithChoiceArray& rhs);
473
474/// Format the specified `rhs` to the specified output `stream` and
475/// return a reference to the modifiable `stream`.
476inline
477bsl::ostream& operator<<(bsl::ostream& stream, const MySequenceWithChoiceArray& rhs);
478
479} // close package namespace
480
481// TRAITS
482
484
485// ============================================================================
486// INLINE FUNCTION DEFINITIONS
487// ============================================================================
488
489namespace s_baltst {
490
491 // -------------------------------------
492 // class MySequenceWithChoiceArrayChoice
493 // -------------------------------------
494
495// CLASS METHODS
496// CREATORS
497inline
499: d_selectionId(SELECTION_ID_UNDEFINED)
500{
501}
502
503inline
508
509// MANIPULATORS
510template <class MANIPULATOR>
525
526inline
532
533inline
539
540// ACCESSORS
541inline
543{
544 return d_selectionId;
545}
546
547template <class ACCESSOR>
549{
550 switch (d_selectionId) {
552 return accessor(d_choiceA.object(),
555 return accessor(d_choiceB.object(),
557 default:
558 BSLS_ASSERT(SELECTION_ID_UNDEFINED == d_selectionId);
559 return -1;
560 }
561}
562
563inline
565{
566 BSLS_ASSERT(SELECTION_ID_CHOICE_A == d_selectionId);
567 return d_choiceA.object();
568}
569
570inline
572{
573 BSLS_ASSERT(SELECTION_ID_CHOICE_B == d_selectionId);
574 return d_choiceB.object();
575}
576
577inline
579{
580 return SELECTION_ID_CHOICE_A == d_selectionId;
581}
582
583inline
585{
586 return SELECTION_ID_CHOICE_B == d_selectionId;
587}
588
589inline
591{
592 return SELECTION_ID_UNDEFINED == d_selectionId;
593}
594
595
596 // -------------------------------
597 // class MySequenceWithChoiceArray
598 // -------------------------------
599
600// CLASS METHODS
601// MANIPULATORS
602template <class MANIPULATOR>
604{
605 int ret;
606
607 ret = manipulator(&d_choices, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_CHOICES]);
608 if (ret) {
609 return ret;
610 }
611
612 return 0;
613}
614
615template <class MANIPULATOR>
616int MySequenceWithChoiceArray::manipulateAttribute(MANIPULATOR& manipulator, int id)
617{
618 enum { NOT_FOUND = -1 };
619
620 switch (id) {
622 return manipulator(&d_choices, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_CHOICES]);
623 }
624 default:
625 return NOT_FOUND;
626 }
627}
628
629template <class MANIPULATOR>
631 MANIPULATOR& manipulator,
632 const char *name,
633 int nameLength)
634{
635 enum { NOT_FOUND = -1 };
636
637 const bdlat_AttributeInfo *attributeInfo =
638 lookupAttributeInfo(name, nameLength);
639 if (0 == attributeInfo) {
640 return NOT_FOUND;
641 }
642
643 return manipulateAttribute(manipulator, attributeInfo->d_id);
644}
645
646inline
651
652// ACCESSORS
653template <class ACCESSOR>
655{
656 int ret;
657
658 ret = accessor(d_choices, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_CHOICES]);
659 if (ret) {
660 return ret;
661 }
662
663 return 0;
664}
665
666template <class ACCESSOR>
667int MySequenceWithChoiceArray::accessAttribute(ACCESSOR& accessor, int id) const
668{
669 enum { NOT_FOUND = -1 };
670
671 switch (id) {
673 return accessor(d_choices, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_CHOICES]);
674 }
675 default:
676 return NOT_FOUND;
677 }
678}
679
680template <class ACCESSOR>
682 ACCESSOR& accessor,
683 const char *name,
684 int nameLength) const
685{
686 enum { NOT_FOUND = -1 };
687
688 const bdlat_AttributeInfo *attributeInfo =
689 lookupAttributeInfo(name, nameLength);
690 if (0 == attributeInfo) {
691 return NOT_FOUND;
692 }
693
694 return accessAttribute(accessor, attributeInfo->d_id);
695}
696
697inline
702
703} // close package namespace
704
705// FREE FUNCTIONS
706
707inline
711{
713 if (lhs.selectionId() == rhs.selectionId()) {
714 switch (rhs.selectionId()) {
715 case Class::SELECTION_ID_CHOICE_A:
716 return lhs.choiceA() == rhs.choiceA();
717 case Class::SELECTION_ID_CHOICE_B:
718 return lhs.choiceB() == rhs.choiceB();
719 default:
720 BSLS_ASSERT(Class::SELECTION_ID_UNDEFINED == rhs.selectionId());
721 return true;
722 }
723 }
724 else {
725 return false;
726 }
727}
728
729inline
733{
734 return !(lhs == rhs);
735}
736
737inline
738bsl::ostream& s_baltst::operator<<(
739 bsl::ostream& stream,
741{
742 return rhs.print(stream, 0, -1);
743}
744
745
746inline
750{
751 return lhs.choices() == rhs.choices();
752}
753
754inline
758{
759 return !(lhs == rhs);
760}
761
762inline
763bsl::ostream& s_baltst::operator<<(
764 bsl::ostream& stream,
766{
767 return rhs.print(stream, 0, -1);
768}
769
770
771#endif
772
773// GENERATED BY @BLP_BAS_CODEGEN_VERSION@
774// USING bas_codegen.pl s_baltst_mysequencewithchoicearray.xsd --mode msg --includedir . --msgComponent mysequencewithchoicearray --noRecurse --noExternalization --noHashSupport --noAggregateConversion
775// ----------------------------------------------------------------------------
776// NOTICE:
777// Copyright 2022 Bloomberg Finance L.P. All rights reserved.
778// Property of Bloomberg Finance L.P. (BFLP)
779// This software is made available solely pursuant to the
780// terms of a BFLP license agreement which governs its use.
781// ------------------------------- END-OF-FILE --------------------------------
782
783/** @} */
784/** @} */
785/** @} */
Definition bslstl_vector.h:1025
Definition bslma_allocator.h:457
Definition s_baltst_mysequencewithchoicearray.h:74
const char * selectionName() const
Return the symbolic name of the current selection of this object.
bsls::ObjectBuffer< int > d_choiceB
Definition s_baltst_mysequencewithchoicearray.h:79
int accessSelection(ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoicearray.h:548
int & choiceA()
Definition s_baltst_mysequencewithchoicearray.h:527
int makeSelection(const char *name, int nameLength)
MySequenceWithChoiceArrayChoice()
Definition s_baltst_mysequencewithchoicearray.h:498
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoicearray.h:105
@ SELECTION_ID_CHOICE_B
Definition s_baltst_mysequencewithchoicearray.h:90
@ SELECTION_ID_UNDEFINED
Definition s_baltst_mysequencewithchoicearray.h:88
@ SELECTION_ID_CHOICE_A
Definition s_baltst_mysequencewithchoicearray.h:89
MySequenceWithChoiceArrayChoice & operator=(const MySequenceWithChoiceArrayChoice &rhs)
Assign to this object the value of the specified rhs object.
~MySequenceWithChoiceArrayChoice()
Destroy this object.
Definition s_baltst_mysequencewithchoicearray.h:504
int manipulateSelection(MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoicearray.h:511
bsls::ObjectBuffer< int > d_choiceA
Definition s_baltst_mysequencewithchoicearray.h:78
MySequenceWithChoiceArrayChoice(const MySequenceWithChoiceArrayChoice &original)
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
int & choiceB()
Definition s_baltst_mysequencewithchoicearray.h:534
bool isUndefinedValue() const
Definition s_baltst_mysequencewithchoicearray.h:590
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoicearray.h:103
bool isChoiceAValue() const
Definition s_baltst_mysequencewithchoicearray.h:578
@ NUM_SELECTIONS
Definition s_baltst_mysequencewithchoicearray.h:94
@ SELECTION_INDEX_CHOICE_B
Definition s_baltst_mysequencewithchoicearray.h:99
@ SELECTION_INDEX_CHOICE_A
Definition s_baltst_mysequencewithchoicearray.h:98
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
bool isChoiceBValue() const
Definition s_baltst_mysequencewithchoicearray.h:584
int selectionId() const
Definition s_baltst_mysequencewithchoicearray.h:542
Definition s_baltst_mysequencewithchoicearray.h:285
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
int manipulateAttributes(MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoicearray.h:603
MySequenceWithChoiceArray(const MySequenceWithChoiceArray &original, bslma::Allocator *basicAllocator=0)
@ ATTRIBUTE_ID_CHOICES
Definition s_baltst_mysequencewithchoicearray.h:293
~MySequenceWithChoiceArray()
Destroy this object.
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoicearray.h:305
int accessAttribute(ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithchoicearray.h:667
int manipulateAttribute(MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithchoicearray.h:616
MySequenceWithChoiceArray & operator=(const MySequenceWithChoiceArray &rhs)
Assign to this object the value of the specified rhs object.
bsl::vector< MySequenceWithChoiceArrayChoice > & choices()
Definition s_baltst_mysequencewithchoicearray.h:647
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
MySequenceWithChoiceArray(bslma::Allocator *basicAllocator=0)
int accessAttributes(ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoicearray.h:654
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithchoicearray.h:297
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoicearray.h:307
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
@ ATTRIBUTE_INDEX_CHOICES
Definition s_baltst_mysequencewithchoicearray.h:301
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:282
#define BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:242
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT_RCSID(tag, str)
Definition bsls_ident.h:260
#define BSLS_IDENT_PRAGMA_ONCE
Definition bsls_ident.h:310
Definition balxml_encoderoptions.h:68
Definition s_baltst_address.h:66
bool operator!=(const Address &lhs, const Address &rhs)
bool operator==(const Address &lhs, const Address &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, const Address &rhs)
Definition bdlat_attributeinfo.h:137
int d_id
Definition bdlat_attributeinfo.h:140
Definition bdlat_selectioninfo.h:136
TYPE & object()
Definition bsls_objectbuffer.h:351