BDE 4.39.x Production Release
Loading...
Searching...
No Matches
s_baltst_mysequencewithnillable.h
Go to the documentation of this file.
1/// @file s_baltst_mysequencewithnillable.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// s_baltst_mysequencewithnillable.h *DO NOT EDIT* @generated -*-C++-*-
8#ifndef INCLUDED_S_BALTST_MYSEQUENCEWITHNILLABLE
9#define INCLUDED_S_BALTST_MYSEQUENCEWITHNILLABLE
10
11#include <bsls_ident.h>
12BSLS_IDENT_RCSID(s_baltst_mysequencewithnillable_h, "$Id$ $CSID$")
14
15/// @defgroup s_baltst_mysequencewithnillable s_baltst_mysequencewithnillable
16/// @brief Provide value-semantic attribute classes
17/// @addtogroup Standalones
18/// @{
19/// @addtogroup s_baltst
20/// @{
21/// @addtogroup s_baltst_mysequencewithnillable
22/// @{
23///
24/// <h1> Outline </h1>
25/// * <a href="#s_baltst_mysequencewithnillable-purpose"> Purpose</a>
26///
27/// # Purpose {#s_baltst_mysequencewithnillable-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_mysequencewithnillable
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 <bdlb_nullablevalue.h>
58
59#include <bsl_string.h>
60
61#include <bsl_vector.h>
62
63#include <bsl_iosfwd.h>
64#include <bsl_limits.h>
65
66
67
68namespace bslma { class Allocator; }
69
70namespace s_baltst { class MySequenceWithNillable; }
71namespace s_baltst { class MySequenceWithNillableBase64Binary; }
72namespace s_baltst { class MySequenceWithNillableHexBinary; }
73namespace s_baltst { class MySequenceWithNillableIntArray; }
74namespace s_baltst { class MySequenceWithNillableIntSequenceArraySequence; }
75namespace s_baltst { class MySequenceWithNillableStringArray; }
76namespace s_baltst { class MySequenceWithNillableStringSequenceArraySequence; }
77namespace s_baltst { class MySequenceWithNillableIntList; }
78namespace s_baltst { class MySequenceWithNillableIntSequenceArray; }
79namespace s_baltst { class MySequenceWithNillableStringList; }
80namespace s_baltst { class MySequenceWithNillableStringSequenceArray; }
81namespace s_baltst {
82
83 // ============================
84 // class MySequenceWithNillable
85 // ============================
86
88
89 // INSTANCE DATA
90 bsl::string d_attribute2;
92 int d_attribute1;
93
94 public:
95 // TYPES
96 enum {
100 };
101
102 enum {
104 };
105
106 enum {
110 };
111
112 // CONSTANTS
113 static const char CLASS_NAME[];
114
116
117 public:
118 // CLASS METHODS
119
120 /// Return attribute information for the attribute indicated by the
121 /// specified `id` if the attribute exists, and 0 otherwise.
123
124 /// Return attribute information for the attribute indicated by the
125 /// specified `name` of the specified `nameLength` if the attribute
126 /// exists, and 0 otherwise.
128 const char *name,
129 int nameLength);
130
131 // CREATORS
132
133 /// Create an object of type `MySequenceWithNillable` having the default
134 /// value. Use the optionally specified `basicAllocator` to supply
135 /// memory. If `basicAllocator` is 0, the currently installed default
136 /// allocator is used.
137 explicit MySequenceWithNillable(bslma::Allocator *basicAllocator = 0);
138
139 /// Create an object of type `MySequenceWithNillable` having the value
140 /// of the specified `original` object. Use the optionally specified
141 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
142 /// currently installed default allocator is used.
144 bslma::Allocator *basicAllocator = 0);
145
146#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
147 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
148 /// Create an object of type `MySequenceWithNillable` having the value
149 /// of the specified `original` object. After performing this action,
150 /// the `original` object will be left in a valid, but unspecified
151 /// state.
153
154 /// Create an object of type `MySequenceWithNillable` having the value
155 /// of the specified `original` object. After performing this action,
156 /// the `original` object will be left in a valid, but unspecified
157 /// state. Use the optionally specified `basicAllocator` to supply
158 /// memory. If `basicAllocator` is 0, the currently installed default
159 /// allocator is used.
161 bslma::Allocator *basicAllocator);
162#endif
163
164 /// Destroy this object.
166
167 // MANIPULATORS
168
169 /// Assign to this object the value of the specified `rhs` object.
171
172#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
173 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
174 /// Assign to this object the value of the specified `rhs` object.
175 /// After performing this action, the `rhs` object will be left in a
176 /// valid, but unspecified state.
178#endif
179
180 /// Reset this object to the default value (i.e., its value upon
181 /// default construction).
182 void reset();
183
184 /// Invoke the specified `manipulator` sequentially on the address of
185 /// each (modifiable) attribute of this object, supplying `manipulator`
186 /// with the corresponding attribute information structure until such
187 /// invocation returns a non-zero value. Return the value from the
188 /// last invocation of `manipulator` (i.e., the invocation that
189 /// terminated the sequence).
190 template <typename t_MANIPULATOR>
191 int manipulateAttributes(t_MANIPULATOR& manipulator);
192
193 /// Invoke the specified `manipulator` on the address of
194 /// the (modifiable) attribute indicated by the specified `id`,
195 /// supplying `manipulator` with the corresponding attribute
196 /// information structure. Return the value returned from the
197 /// invocation of `manipulator` if `id` identifies an attribute of this
198 /// class, and -1 otherwise.
199 template <typename t_MANIPULATOR>
200 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
201
202 /// Invoke the specified `manipulator` on the address of
203 /// the (modifiable) attribute indicated by the specified `name` of the
204 /// specified `nameLength`, supplying `manipulator` with the
205 /// corresponding attribute information structure. Return the value
206 /// returned from the invocation of `manipulator` if `name` identifies
207 /// an attribute of this class, and -1 otherwise.
208 template <typename t_MANIPULATOR>
209 int manipulateAttribute(t_MANIPULATOR& manipulator,
210 const char *name,
211 int nameLength);
212
213 /// Return a reference to the modifiable "Attribute1" attribute of this
214 /// object.
215 int& attribute1();
216
217 /// Return a reference to the modifiable "MyNillable" attribute of this
218 /// object.
220
221 /// Return a reference to the modifiable "Attribute2" attribute of this
222 /// object.
224
225 // ACCESSORS
226
227 /// Format this object to the specified output `stream` at the
228 /// optionally specified indentation `level` and return a reference to
229 /// the modifiable `stream`. If `level` is specified, optionally
230 /// specify `spacesPerLevel`, the number of spaces per indentation level
231 /// for this and all of its nested objects. Each line is indented by
232 /// the absolute value of `level * spacesPerLevel`. If `level` is
233 /// negative, suppress indentation of the first line. If
234 /// `spacesPerLevel` is negative, suppress line breaks and format the
235 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
236 ///
237 /// \note Note that a trailing newline is provided
238 /// in multiline mode only.
239 bsl::ostream& print(bsl::ostream& stream,
240 int level = 0,
241 int spacesPerLevel = 4) const;
242
243 /// Invoke the specified `accessor` sequentially on each
244 /// (non-modifiable) attribute of this object, supplying `accessor`
245 /// with the corresponding attribute information structure until such
246 /// invocation returns a non-zero value. Return the value from the
247 /// last invocation of `accessor` (i.e., the invocation that terminated
248 /// the sequence).
249 template <typename t_ACCESSOR>
250 int accessAttributes(t_ACCESSOR& accessor) const;
251
252 /// Invoke the specified `accessor` on the (non-modifiable) attribute
253 /// of this object indicated by the specified `id`, supplying `accessor`
254 /// with the corresponding attribute information structure. Return the
255 /// value returned from the invocation of `accessor` if `id` identifies
256 /// an attribute of this class, and -1 otherwise.
257 template <typename t_ACCESSOR>
258 int accessAttribute(t_ACCESSOR& accessor, int id) const;
259
260 /// Invoke the specified `accessor` on the (non-modifiable) attribute
261 /// of this object indicated by the specified `name` of the specified
262 /// `nameLength`, supplying `accessor` with the corresponding attribute
263 /// information structure. Return the value returned from the
264 /// invocation of `accessor` if `name` identifies an attribute of this
265 /// class, and -1 otherwise.
266 template <typename t_ACCESSOR>
267 int accessAttribute(t_ACCESSOR& accessor,
268 const char *name,
269 int nameLength) const;
270
271 /// Return the value of the "Attribute1" attribute of this object.
272 int attribute1() const;
273
274 /// Return a reference offering non-modifiable access to the
275 /// "MyNillable" attribute of this object.
277
278 /// Return a reference offering non-modifiable access to the
279 /// "Attribute2" attribute of this object.
280 const bsl::string& attribute2() const;
281
282 // HIDDEN FRIENDS
283
284 /// Return `true` if the specified `lhs` and `rhs` attribute objects
285 /// have the same value, and `false` otherwise. Two attribute objects
286 /// have the same value if each respective attribute has the same value.
287 friend bool operator==(const MySequenceWithNillable& lhs,
288 const MySequenceWithNillable& rhs)
289 {
290 return lhs.attribute1() == rhs.attribute1() &&
291 lhs.myNillable() == rhs.myNillable() &&
292 lhs.attribute2() == rhs.attribute2();
293 }
294
295 /// Returns `!(lhs == rhs)`
296 friend bool operator!=(const MySequenceWithNillable& lhs,
297 const MySequenceWithNillable& rhs)
298 {
299 return !(lhs == rhs);
300 }
301
302 /// Format the specified `rhs` to the specified output `stream` and
303 /// return a reference to the modifiable `stream`.
304 friend bsl::ostream& operator<<(bsl::ostream& stream,
305 const MySequenceWithNillable& rhs)
306 {
307 return rhs.print(stream, 0, -1);
308 }
309};
310
311} // close package namespace
312
313// TRAITS
314
316template <>
317struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillable> : bsl::true_type {};
318
319namespace s_baltst {
320
321 // ========================================
322 // class MySequenceWithNillableBase64Binary
323 // ========================================
324
326
327 // INSTANCE DATA
329
330 public:
331 // TYPES
332 enum {
334 };
335
336 enum {
338 };
339
340 enum {
342 };
343
344 // CONSTANTS
345 static const char CLASS_NAME[];
346
348
349 public:
350 // CLASS METHODS
351
352 /// Return attribute information for the attribute indicated by the
353 /// specified `id` if the attribute exists, and 0 otherwise.
355
356 /// Return attribute information for the attribute indicated by the
357 /// specified `name` of the specified `nameLength` if the attribute
358 /// exists, and 0 otherwise.
360 const char *name,
361 int nameLength);
362
363 // CREATORS
364
365 /// Create an object of type `MySequenceWithNillableBase64Binary` having
366 /// the default value. Use the optionally specified `basicAllocator` to
367 /// supply memory. If `basicAllocator` is 0, the currently installed
368 /// default allocator is used.
370
371 /// Create an object of type `MySequenceWithNillableBase64Binary` having
372 /// the value of the specified `original` object. Use the optionally
373 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
374 /// 0, the currently installed default allocator is used.
376 bslma::Allocator *basicAllocator = 0);
377
378#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
379 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
380 /// Create an object of type `MySequenceWithNillableBase64Binary` having
381 /// the value of the specified `original` object. After performing this
382 /// action, the `original` object will be left in a valid, but
383 /// unspecified state.
385
386 /// Create an object of type `MySequenceWithNillableBase64Binary` having
387 /// the value of the specified `original` object. After performing this
388 /// action, the `original` object will be left in a valid, but
389 /// unspecified state. Use the optionally specified `basicAllocator` to
390 /// supply memory. If `basicAllocator` is 0, the currently installed
391 /// default allocator is used.
393 bslma::Allocator *basicAllocator);
394#endif
395
396 /// Destroy this object.
398
399 // MANIPULATORS
400
401 /// Assign to this object the value of the specified `rhs` object.
403
404#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
405 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
406 /// Assign to this object the value of the specified `rhs` object.
407 /// After performing this action, the `rhs` object will be left in a
408 /// valid, but unspecified state.
410#endif
411
412 /// Reset this object to the default value (i.e., its value upon
413 /// default construction).
414 void reset();
415
416 /// Invoke the specified `manipulator` sequentially on the address of
417 /// each (modifiable) attribute of this object, supplying `manipulator`
418 /// with the corresponding attribute information structure until such
419 /// invocation returns a non-zero value. Return the value from the
420 /// last invocation of `manipulator` (i.e., the invocation that
421 /// terminated the sequence).
422 template <typename t_MANIPULATOR>
423 int manipulateAttributes(t_MANIPULATOR& manipulator);
424
425 /// Invoke the specified `manipulator` on the address of
426 /// the (modifiable) attribute indicated by the specified `id`,
427 /// supplying `manipulator` with the corresponding attribute
428 /// information structure. Return the value returned from the
429 /// invocation of `manipulator` if `id` identifies an attribute of this
430 /// class, and -1 otherwise.
431 template <typename t_MANIPULATOR>
432 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
433
434 /// Invoke the specified `manipulator` on the address of
435 /// the (modifiable) attribute indicated by the specified `name` of the
436 /// specified `nameLength`, supplying `manipulator` with the
437 /// corresponding attribute information structure. Return the value
438 /// returned from the invocation of `manipulator` if `name` identifies
439 /// an attribute of this class, and -1 otherwise.
440 template <typename t_MANIPULATOR>
441 int manipulateAttribute(t_MANIPULATOR& manipulator,
442 const char *name,
443 int nameLength);
444
445 /// Return a reference to the modifiable "Attribute1" attribute of this
446 /// object.
448
449 // ACCESSORS
450
451 /// Format this object to the specified output `stream` at the
452 /// optionally specified indentation `level` and return a reference to
453 /// the modifiable `stream`. If `level` is specified, optionally
454 /// specify `spacesPerLevel`, the number of spaces per indentation level
455 /// for this and all of its nested objects. Each line is indented by
456 /// the absolute value of `level * spacesPerLevel`. If `level` is
457 /// negative, suppress indentation of the first line. If
458 /// `spacesPerLevel` is negative, suppress line breaks and format the
459 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
460 ///
461 /// \note Note that a trailing newline is provided
462 /// in multiline mode only.
463 bsl::ostream& print(bsl::ostream& stream,
464 int level = 0,
465 int spacesPerLevel = 4) const;
466
467 /// Invoke the specified `accessor` sequentially on each
468 /// (non-modifiable) attribute of this object, supplying `accessor`
469 /// with the corresponding attribute information structure until such
470 /// invocation returns a non-zero value. Return the value from the
471 /// last invocation of `accessor` (i.e., the invocation that terminated
472 /// the sequence).
473 template <typename t_ACCESSOR>
474 int accessAttributes(t_ACCESSOR& accessor) const;
475
476 /// Invoke the specified `accessor` on the (non-modifiable) attribute
477 /// of this object indicated by the specified `id`, supplying `accessor`
478 /// with the corresponding attribute information structure. Return the
479 /// value returned from the invocation of `accessor` if `id` identifies
480 /// an attribute of this class, and -1 otherwise.
481 template <typename t_ACCESSOR>
482 int accessAttribute(t_ACCESSOR& accessor, int id) const;
483
484 /// Invoke the specified `accessor` on the (non-modifiable) attribute
485 /// of this object indicated by the specified `name` of the specified
486 /// `nameLength`, supplying `accessor` with the corresponding attribute
487 /// information structure. Return the value returned from the
488 /// invocation of `accessor` if `name` identifies an attribute of this
489 /// class, and -1 otherwise.
490 template <typename t_ACCESSOR>
491 int accessAttribute(t_ACCESSOR& accessor,
492 const char *name,
493 int nameLength) const;
494
495 /// Return a reference offering non-modifiable access to the
496 /// "Attribute1" attribute of this object.
498
499 // HIDDEN FRIENDS
500
501 /// Return `true` if the specified `lhs` and `rhs` attribute objects
502 /// have the same value, and `false` otherwise. Two attribute objects
503 /// have the same value if each respective attribute has the same value.
506 {
507 return lhs.attribute1() == rhs.attribute1();
508 }
509
510 /// Returns `!(lhs == rhs)`
513 {
514 return !(lhs == rhs);
515 }
516
517 /// Format the specified `rhs` to the specified output `stream` and
518 /// return a reference to the modifiable `stream`.
519 friend bsl::ostream& operator<<(
520 bsl::ostream& stream,
522 {
523 return rhs.print(stream, 0, -1);
524 }
525};
526
527} // close package namespace
528
529// TRAITS
530
532template <>
533struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableBase64Binary> : bsl::true_type {};
534
535namespace s_baltst {
536
537 // =====================================
538 // class MySequenceWithNillableHexBinary
539 // =====================================
540
542
543 // INSTANCE DATA
545
546 public:
547 // TYPES
548 enum {
550 };
551
552 enum {
554 };
555
556 enum {
558 };
559
560 // CONSTANTS
561 static const char CLASS_NAME[];
562
564
565 public:
566 // CLASS METHODS
567
568 /// Return attribute information for the attribute indicated by the
569 /// specified `id` if the attribute exists, and 0 otherwise.
571
572 /// Return attribute information for the attribute indicated by the
573 /// specified `name` of the specified `nameLength` if the attribute
574 /// exists, and 0 otherwise.
576 const char *name,
577 int nameLength);
578
579 // CREATORS
580
581 /// Create an object of type `MySequenceWithNillableHexBinary` having
582 /// the default value. Use the optionally specified `basicAllocator` to
583 /// supply memory. If `basicAllocator` is 0, the currently installed
584 /// default allocator is used.
586
587 /// Create an object of type `MySequenceWithNillableHexBinary` having
588 /// the value of the specified `original` object. Use the optionally
589 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
590 /// 0, the currently installed default allocator is used.
592 bslma::Allocator *basicAllocator = 0);
593
594#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
595 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
596 /// Create an object of type `MySequenceWithNillableHexBinary` having
597 /// the value of the specified `original` object. After performing this
598 /// action, the `original` object will be left in a valid, but
599 /// unspecified state.
601
602 /// Create an object of type `MySequenceWithNillableHexBinary` having
603 /// the value of the specified `original` object. After performing this
604 /// action, the `original` object will be left in a valid, but
605 /// unspecified state. Use the optionally specified `basicAllocator` to
606 /// supply memory. If `basicAllocator` is 0, the currently installed
607 /// default allocator is used.
609 bslma::Allocator *basicAllocator);
610#endif
611
612 /// Destroy this object.
614
615 // MANIPULATORS
616
617 /// Assign to this object the value of the specified `rhs` object.
619
620#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
621 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
622 /// Assign to this object the value of the specified `rhs` object.
623 /// After performing this action, the `rhs` object will be left in a
624 /// valid, but unspecified state.
626#endif
627
628 /// Reset this object to the default value (i.e., its value upon
629 /// default construction).
630 void reset();
631
632 /// Invoke the specified `manipulator` sequentially on the address of
633 /// each (modifiable) attribute of this object, supplying `manipulator`
634 /// with the corresponding attribute information structure until such
635 /// invocation returns a non-zero value. Return the value from the
636 /// last invocation of `manipulator` (i.e., the invocation that
637 /// terminated the sequence).
638 template <typename t_MANIPULATOR>
639 int manipulateAttributes(t_MANIPULATOR& manipulator);
640
641 /// Invoke the specified `manipulator` on the address of
642 /// the (modifiable) attribute indicated by the specified `id`,
643 /// supplying `manipulator` with the corresponding attribute
644 /// information structure. Return the value returned from the
645 /// invocation of `manipulator` if `id` identifies an attribute of this
646 /// class, and -1 otherwise.
647 template <typename t_MANIPULATOR>
648 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
649
650 /// Invoke the specified `manipulator` on the address of
651 /// the (modifiable) attribute indicated by the specified `name` of the
652 /// specified `nameLength`, supplying `manipulator` with the
653 /// corresponding attribute information structure. Return the value
654 /// returned from the invocation of `manipulator` if `name` identifies
655 /// an attribute of this class, and -1 otherwise.
656 template <typename t_MANIPULATOR>
657 int manipulateAttribute(t_MANIPULATOR& manipulator,
658 const char *name,
659 int nameLength);
660
661 /// Return a reference to the modifiable "Attribute1" attribute of this
662 /// object.
664
665 // ACCESSORS
666
667 /// Format this object to the specified output `stream` at the
668 /// optionally specified indentation `level` and return a reference to
669 /// the modifiable `stream`. If `level` is specified, optionally
670 /// specify `spacesPerLevel`, the number of spaces per indentation level
671 /// for this and all of its nested objects. Each line is indented by
672 /// the absolute value of `level * spacesPerLevel`. If `level` is
673 /// negative, suppress indentation of the first line. If
674 /// `spacesPerLevel` is negative, suppress line breaks and format the
675 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
676 ///
677 /// \note Note that a trailing newline is provided
678 /// in multiline mode only.
679 bsl::ostream& print(bsl::ostream& stream,
680 int level = 0,
681 int spacesPerLevel = 4) const;
682
683 /// Invoke the specified `accessor` sequentially on each
684 /// (non-modifiable) attribute of this object, supplying `accessor`
685 /// with the corresponding attribute information structure until such
686 /// invocation returns a non-zero value. Return the value from the
687 /// last invocation of `accessor` (i.e., the invocation that terminated
688 /// the sequence).
689 template <typename t_ACCESSOR>
690 int accessAttributes(t_ACCESSOR& accessor) const;
691
692 /// Invoke the specified `accessor` on the (non-modifiable) attribute
693 /// of this object indicated by the specified `id`, supplying `accessor`
694 /// with the corresponding attribute information structure. Return the
695 /// value returned from the invocation of `accessor` if `id` identifies
696 /// an attribute of this class, and -1 otherwise.
697 template <typename t_ACCESSOR>
698 int accessAttribute(t_ACCESSOR& accessor, int id) const;
699
700 /// Invoke the specified `accessor` on the (non-modifiable) attribute
701 /// of this object indicated by the specified `name` of the specified
702 /// `nameLength`, supplying `accessor` with the corresponding attribute
703 /// information structure. Return the value returned from the
704 /// invocation of `accessor` if `name` identifies an attribute of this
705 /// class, and -1 otherwise.
706 template <typename t_ACCESSOR>
707 int accessAttribute(t_ACCESSOR& accessor,
708 const char *name,
709 int nameLength) const;
710
711 /// Return a reference offering non-modifiable access to the
712 /// "Attribute1" attribute of this object.
714
715 // HIDDEN FRIENDS
716
717 /// Return `true` if the specified `lhs` and `rhs` attribute objects
718 /// have the same value, and `false` otherwise. Two attribute objects
719 /// have the same value if each respective attribute has the same value.
722 {
723 return lhs.attribute1() == rhs.attribute1();
724 }
725
726 /// Returns `!(lhs == rhs)`
729 {
730 return !(lhs == rhs);
731 }
732
733 /// Format the specified `rhs` to the specified output `stream` and
734 /// return a reference to the modifiable `stream`.
735 friend bsl::ostream& operator<<(
736 bsl::ostream& stream,
738 {
739 return rhs.print(stream, 0, -1);
740 }
741};
742
743} // close package namespace
744
745// TRAITS
746
748template <>
749struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableHexBinary> : bsl::true_type {};
750
751namespace s_baltst {
752
753 // ====================================
754 // class MySequenceWithNillableIntArray
755 // ====================================
756
758
759 // INSTANCE DATA
761
762 public:
763 // TYPES
764 enum {
766 };
767
768 enum {
770 };
771
772 enum {
774 };
775
776 // CONSTANTS
777 static const char CLASS_NAME[];
778
780
781 public:
782 // CLASS METHODS
783
784 /// Return attribute information for the attribute indicated by the
785 /// specified `id` if the attribute exists, and 0 otherwise.
787
788 /// Return attribute information for the attribute indicated by the
789 /// specified `name` of the specified `nameLength` if the attribute
790 /// exists, and 0 otherwise.
792 const char *name,
793 int nameLength);
794
795 // CREATORS
796
797 /// Create an object of type `MySequenceWithNillableIntArray` having the
798 /// default value. Use the optionally specified `basicAllocator` to
799 /// supply memory. If `basicAllocator` is 0, the currently installed
800 /// default allocator is used.
802
803 /// Create an object of type `MySequenceWithNillableIntArray` having the
804 /// value of the specified `original` object. Use the optionally
805 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
806 /// 0, the currently installed default allocator is used.
808 bslma::Allocator *basicAllocator = 0);
809
810#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
811 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
812 /// Create an object of type `MySequenceWithNillableIntArray` having the
813 /// value of the specified `original` object. After performing this
814 /// action, the `original` object will be left in a valid, but
815 /// unspecified state.
817
818 /// Create an object of type `MySequenceWithNillableIntArray` having the
819 /// value of the specified `original` object. After performing this
820 /// action, the `original` object will be left in a valid, but
821 /// unspecified state. Use the optionally specified `basicAllocator` to
822 /// supply memory. If `basicAllocator` is 0, the currently installed
823 /// default allocator is used.
825 bslma::Allocator *basicAllocator);
826#endif
827
828 /// Destroy this object.
830
831 // MANIPULATORS
832
833 /// Assign to this object the value of the specified `rhs` object.
835
836#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
837 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
838 /// Assign to this object the value of the specified `rhs` object.
839 /// After performing this action, the `rhs` object will be left in a
840 /// valid, but unspecified state.
842#endif
843
844 /// Reset this object to the default value (i.e., its value upon
845 /// default construction).
846 void reset();
847
848 /// Invoke the specified `manipulator` sequentially on the address of
849 /// each (modifiable) attribute of this object, supplying `manipulator`
850 /// with the corresponding attribute information structure until such
851 /// invocation returns a non-zero value. Return the value from the
852 /// last invocation of `manipulator` (i.e., the invocation that
853 /// terminated the sequence).
854 template <typename t_MANIPULATOR>
855 int manipulateAttributes(t_MANIPULATOR& manipulator);
856
857 /// Invoke the specified `manipulator` on the address of
858 /// the (modifiable) attribute indicated by the specified `id`,
859 /// supplying `manipulator` with the corresponding attribute
860 /// information structure. Return the value returned from the
861 /// invocation of `manipulator` if `id` identifies an attribute of this
862 /// class, and -1 otherwise.
863 template <typename t_MANIPULATOR>
864 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
865
866 /// Invoke the specified `manipulator` on the address of
867 /// the (modifiable) attribute indicated by the specified `name` of the
868 /// specified `nameLength`, supplying `manipulator` with the
869 /// corresponding attribute information structure. Return the value
870 /// returned from the invocation of `manipulator` if `name` identifies
871 /// an attribute of this class, and -1 otherwise.
872 template <typename t_MANIPULATOR>
873 int manipulateAttribute(t_MANIPULATOR& manipulator,
874 const char *name,
875 int nameLength);
876
877 /// Return a reference to the modifiable "Attribute1" attribute of this
878 /// object.
880
881 // ACCESSORS
882
883 /// Format this object to the specified output `stream` at the
884 /// optionally specified indentation `level` and return a reference to
885 /// the modifiable `stream`. If `level` is specified, optionally
886 /// specify `spacesPerLevel`, the number of spaces per indentation level
887 /// for this and all of its nested objects. Each line is indented by
888 /// the absolute value of `level * spacesPerLevel`. If `level` is
889 /// negative, suppress indentation of the first line. If
890 /// `spacesPerLevel` is negative, suppress line breaks and format the
891 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
892 ///
893 /// \note Note that a trailing newline is provided
894 /// in multiline mode only.
895 bsl::ostream& print(bsl::ostream& stream,
896 int level = 0,
897 int spacesPerLevel = 4) const;
898
899 /// Invoke the specified `accessor` sequentially on each
900 /// (non-modifiable) attribute of this object, supplying `accessor`
901 /// with the corresponding attribute information structure until such
902 /// invocation returns a non-zero value. Return the value from the
903 /// last invocation of `accessor` (i.e., the invocation that terminated
904 /// the sequence).
905 template <typename t_ACCESSOR>
906 int accessAttributes(t_ACCESSOR& accessor) const;
907
908 /// Invoke the specified `accessor` on the (non-modifiable) attribute
909 /// of this object indicated by the specified `id`, supplying `accessor`
910 /// with the corresponding attribute information structure. Return the
911 /// value returned from the invocation of `accessor` if `id` identifies
912 /// an attribute of this class, and -1 otherwise.
913 template <typename t_ACCESSOR>
914 int accessAttribute(t_ACCESSOR& accessor, int id) const;
915
916 /// Invoke the specified `accessor` on the (non-modifiable) attribute
917 /// of this object indicated by the specified `name` of the specified
918 /// `nameLength`, supplying `accessor` with the corresponding attribute
919 /// information structure. Return the value returned from the
920 /// invocation of `accessor` if `name` identifies an attribute of this
921 /// class, and -1 otherwise.
922 template <typename t_ACCESSOR>
923 int accessAttribute(t_ACCESSOR& accessor,
924 const char *name,
925 int nameLength) const;
926
927 /// Return a reference offering non-modifiable access to the
928 /// "Attribute1" attribute of this object.
930
931 // HIDDEN FRIENDS
932
933 /// Return `true` if the specified `lhs` and `rhs` attribute objects
934 /// have the same value, and `false` otherwise. Two attribute objects
935 /// have the same value if each respective attribute has the same value.
938 {
939 return lhs.attribute1() == rhs.attribute1();
940 }
941
942 /// Returns `!(lhs == rhs)`
945 {
946 return !(lhs == rhs);
947 }
948
949 /// Format the specified `rhs` to the specified output `stream` and
950 /// return a reference to the modifiable `stream`.
951 friend bsl::ostream& operator<<(
952 bsl::ostream& stream,
954 {
955 return rhs.print(stream, 0, -1);
956 }
957};
958
959} // close package namespace
960
961// TRAITS
962
964template <>
965struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableIntArray> : bsl::true_type {};
966
967namespace s_baltst {
968
969 // ====================================================
970 // class MySequenceWithNillableIntSequenceArraySequence
971 // ====================================================
972
974
975 // INSTANCE DATA
976 int d_attribute1;
977
978 public:
979 // TYPES
980 enum {
982 };
983
984 enum {
986 };
987
988 enum {
990 };
991
992 // CONSTANTS
993 static const char CLASS_NAME[];
994
996
997 public:
998 // CLASS METHODS
999
1000 /// Return attribute information for the attribute indicated by the
1001 /// specified `id` if the attribute exists, and 0 otherwise.
1003
1004 /// Return attribute information for the attribute indicated by the
1005 /// specified `name` of the specified `nameLength` if the attribute
1006 /// exists, and 0 otherwise.
1008 const char *name,
1009 int nameLength);
1010
1011 // CREATORS
1012
1013 /// Create an object of type
1014 /// `MySequenceWithNillableIntSequenceArraySequence` having the default
1015 /// value.
1017
1018
1019 // MANIPULATORS
1020
1021 /// Reset this object to the default value (i.e., its value upon
1022 /// default construction).
1023 void reset();
1024
1025 /// Invoke the specified `manipulator` sequentially on the address of
1026 /// each (modifiable) attribute of this object, supplying `manipulator`
1027 /// with the corresponding attribute information structure until such
1028 /// invocation returns a non-zero value. Return the value from the
1029 /// last invocation of `manipulator` (i.e., the invocation that
1030 /// terminated the sequence).
1031 template <typename t_MANIPULATOR>
1032 int manipulateAttributes(t_MANIPULATOR& manipulator);
1033
1034 /// Invoke the specified `manipulator` on the address of
1035 /// the (modifiable) attribute indicated by the specified `id`,
1036 /// supplying `manipulator` with the corresponding attribute
1037 /// information structure. Return the value returned from the
1038 /// invocation of `manipulator` if `id` identifies an attribute of this
1039 /// class, and -1 otherwise.
1040 template <typename t_MANIPULATOR>
1041 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
1042
1043 /// Invoke the specified `manipulator` on the address of
1044 /// the (modifiable) attribute indicated by the specified `name` of the
1045 /// specified `nameLength`, supplying `manipulator` with the
1046 /// corresponding attribute information structure. Return the value
1047 /// returned from the invocation of `manipulator` if `name` identifies
1048 /// an attribute of this class, and -1 otherwise.
1049 template <typename t_MANIPULATOR>
1050 int manipulateAttribute(t_MANIPULATOR& manipulator,
1051 const char *name,
1052 int nameLength);
1053
1054 /// Return a reference to the modifiable "Attribute1" attribute of this
1055 /// object.
1056 int& attribute1();
1057
1058 // ACCESSORS
1059
1060 /// Format this object to the specified output `stream` at the
1061 /// optionally specified indentation `level` and return a reference to
1062 /// the modifiable `stream`. If `level` is specified, optionally
1063 /// specify `spacesPerLevel`, the number of spaces per indentation level
1064 /// for this and all of its nested objects. Each line is indented by
1065 /// the absolute value of `level * spacesPerLevel`. If `level` is
1066 /// negative, suppress indentation of the first line. If
1067 /// `spacesPerLevel` is negative, suppress line breaks and format the
1068 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
1069 ///
1070 /// \note Note that a trailing newline is provided
1071 /// in multiline mode only.
1072 bsl::ostream& print(bsl::ostream& stream,
1073 int level = 0,
1074 int spacesPerLevel = 4) const;
1075
1076 /// Invoke the specified `accessor` sequentially on each
1077 /// (non-modifiable) attribute of this object, supplying `accessor`
1078 /// with the corresponding attribute information structure until such
1079 /// invocation returns a non-zero value. Return the value from the
1080 /// last invocation of `accessor` (i.e., the invocation that terminated
1081 /// the sequence).
1082 template <typename t_ACCESSOR>
1083 int accessAttributes(t_ACCESSOR& accessor) const;
1084
1085 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1086 /// of this object indicated by the specified `id`, supplying `accessor`
1087 /// with the corresponding attribute information structure. Return the
1088 /// value returned from the invocation of `accessor` if `id` identifies
1089 /// an attribute of this class, and -1 otherwise.
1090 template <typename t_ACCESSOR>
1091 int accessAttribute(t_ACCESSOR& accessor, int id) const;
1092
1093 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1094 /// of this object indicated by the specified `name` of the specified
1095 /// `nameLength`, supplying `accessor` with the corresponding attribute
1096 /// information structure. Return the value returned from the
1097 /// invocation of `accessor` if `name` identifies an attribute of this
1098 /// class, and -1 otherwise.
1099 template <typename t_ACCESSOR>
1100 int accessAttribute(t_ACCESSOR& accessor,
1101 const char *name,
1102 int nameLength) const;
1103
1104 /// Return the value of the "Attribute1" attribute of this object.
1105 int attribute1() const;
1106
1107 // HIDDEN FRIENDS
1108
1109 /// Return `true` if the specified `lhs` and `rhs` attribute objects
1110 /// have the same value, and `false` otherwise. Two attribute objects
1111 /// have the same value if each respective attribute has the same value.
1112 friend bool operator==(
1115 {
1116 return lhs.attribute1() == rhs.attribute1();
1117 }
1118
1119 /// Returns `!(lhs == rhs)`
1120 friend bool operator!=(
1123 {
1124 return !(lhs == rhs);
1125 }
1126
1127 /// Format the specified `rhs` to the specified output `stream` and
1128 /// return a reference to the modifiable `stream`.
1129 friend bsl::ostream& operator<<(
1130 bsl::ostream& stream,
1132 {
1133 return rhs.print(stream, 0, -1);
1134 }
1135};
1136
1137} // close package namespace
1138
1139// TRAITS
1140
1142template <>
1143struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableIntSequenceArraySequence> : bsl::true_type {};
1144
1145namespace s_baltst {
1146
1147 // =======================================
1148 // class MySequenceWithNillableStringArray
1149 // =======================================
1150
1152
1153 // INSTANCE DATA
1155
1156 public:
1157 // TYPES
1158 enum {
1161
1162 enum {
1163 NUM_ATTRIBUTES = 1
1165
1166 enum {
1169
1170 // CONSTANTS
1171 static const char CLASS_NAME[];
1172
1174
1175 public:
1176 // CLASS METHODS
1177
1178 /// Return attribute information for the attribute indicated by the
1179 /// specified `id` if the attribute exists, and 0 otherwise.
1181
1182 /// Return attribute information for the attribute indicated by the
1183 /// specified `name` of the specified `nameLength` if the attribute
1184 /// exists, and 0 otherwise.
1186 const char *name,
1187 int nameLength);
1188
1189 // CREATORS
1190
1191 /// Create an object of type `MySequenceWithNillableStringArray` having
1192 /// the default value. Use the optionally specified `basicAllocator` to
1193 /// supply memory. If `basicAllocator` is 0, the currently installed
1194 /// default allocator is used.
1196
1197 /// Create an object of type `MySequenceWithNillableStringArray` having
1198 /// the value of the specified `original` object. Use the optionally
1199 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
1200 /// 0, the currently installed default allocator is used.
1202 bslma::Allocator *basicAllocator = 0);
1203
1204#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1205 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1206 /// Create an object of type `MySequenceWithNillableStringArray` having
1207 /// the value of the specified `original` object. After performing this
1208 /// action, the `original` object will be left in a valid, but
1209 /// unspecified state.
1211
1212 /// Create an object of type `MySequenceWithNillableStringArray` having
1213 /// the value of the specified `original` object. After performing this
1214 /// action, the `original` object will be left in a valid, but
1215 /// unspecified state. Use the optionally specified `basicAllocator` to
1216 /// supply memory. If `basicAllocator` is 0, the currently installed
1217 /// default allocator is used.
1219 bslma::Allocator *basicAllocator);
1220#endif
1221
1222 /// Destroy this object.
1224
1225 // MANIPULATORS
1226
1227 /// Assign to this object the value of the specified `rhs` object.
1229
1230#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1231 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1232 /// Assign to this object the value of the specified `rhs` object.
1233 /// After performing this action, the `rhs` object will be left in a
1234 /// valid, but unspecified state.
1236#endif
1237
1238 /// Reset this object to the default value (i.e., its value upon
1239 /// default construction).
1240 void reset();
1241
1242 /// Invoke the specified `manipulator` sequentially on the address of
1243 /// each (modifiable) attribute of this object, supplying `manipulator`
1244 /// with the corresponding attribute information structure until such
1245 /// invocation returns a non-zero value. Return the value from the
1246 /// last invocation of `manipulator` (i.e., the invocation that
1247 /// terminated the sequence).
1248 template <typename t_MANIPULATOR>
1249 int manipulateAttributes(t_MANIPULATOR& manipulator);
1250
1251 /// Invoke the specified `manipulator` on the address of
1252 /// the (modifiable) attribute indicated by the specified `id`,
1253 /// supplying `manipulator` with the corresponding attribute
1254 /// information structure. Return the value returned from the
1255 /// invocation of `manipulator` if `id` identifies an attribute of this
1256 /// class, and -1 otherwise.
1257 template <typename t_MANIPULATOR>
1258 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
1259
1260 /// Invoke the specified `manipulator` on the address of
1261 /// the (modifiable) attribute indicated by the specified `name` of the
1262 /// specified `nameLength`, supplying `manipulator` with the
1263 /// corresponding attribute information structure. Return the value
1264 /// returned from the invocation of `manipulator` if `name` identifies
1265 /// an attribute of this class, and -1 otherwise.
1266 template <typename t_MANIPULATOR>
1267 int manipulateAttribute(t_MANIPULATOR& manipulator,
1268 const char *name,
1269 int nameLength);
1270
1271 /// Return a reference to the modifiable "Attribute1" attribute of this
1272 /// object.
1274
1275 // ACCESSORS
1276
1277 /// Format this object to the specified output `stream` at the
1278 /// optionally specified indentation `level` and return a reference to
1279 /// the modifiable `stream`. If `level` is specified, optionally
1280 /// specify `spacesPerLevel`, the number of spaces per indentation level
1281 /// for this and all of its nested objects. Each line is indented by
1282 /// the absolute value of `level * spacesPerLevel`. If `level` is
1283 /// negative, suppress indentation of the first line. If
1284 /// `spacesPerLevel` is negative, suppress line breaks and format the
1285 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
1286 ///
1287 /// \note Note that a trailing newline is provided
1288 /// in multiline mode only.
1289 bsl::ostream& print(bsl::ostream& stream,
1290 int level = 0,
1291 int spacesPerLevel = 4) const;
1292
1293 /// Invoke the specified `accessor` sequentially on each
1294 /// (non-modifiable) attribute of this object, supplying `accessor`
1295 /// with the corresponding attribute information structure until such
1296 /// invocation returns a non-zero value. Return the value from the
1297 /// last invocation of `accessor` (i.e., the invocation that terminated
1298 /// the sequence).
1299 template <typename t_ACCESSOR>
1300 int accessAttributes(t_ACCESSOR& accessor) const;
1301
1302 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1303 /// of this object indicated by the specified `id`, supplying `accessor`
1304 /// with the corresponding attribute information structure. Return the
1305 /// value returned from the invocation of `accessor` if `id` identifies
1306 /// an attribute of this class, and -1 otherwise.
1307 template <typename t_ACCESSOR>
1308 int accessAttribute(t_ACCESSOR& accessor, int id) const;
1309
1310 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1311 /// of this object indicated by the specified `name` of the specified
1312 /// `nameLength`, supplying `accessor` with the corresponding attribute
1313 /// information structure. Return the value returned from the
1314 /// invocation of `accessor` if `name` identifies an attribute of this
1315 /// class, and -1 otherwise.
1316 template <typename t_ACCESSOR>
1317 int accessAttribute(t_ACCESSOR& accessor,
1318 const char *name,
1319 int nameLength) const;
1320
1321 /// Return a reference offering non-modifiable access to the
1322 /// "Attribute1" attribute of this object.
1324
1325 // HIDDEN FRIENDS
1326
1327 /// Return `true` if the specified `lhs` and `rhs` attribute objects
1328 /// have the same value, and `false` otherwise. Two attribute objects
1329 /// have the same value if each respective attribute has the same value.
1332 {
1333 return lhs.attribute1() == rhs.attribute1();
1334 }
1335
1336 /// Returns `!(lhs == rhs)`
1339 {
1340 return !(lhs == rhs);
1341 }
1342
1343 /// Format the specified `rhs` to the specified output `stream` and
1344 /// return a reference to the modifiable `stream`.
1345 friend bsl::ostream& operator<<(
1346 bsl::ostream& stream,
1348 {
1349 return rhs.print(stream, 0, -1);
1350 }
1351};
1352
1353} // close package namespace
1354
1355// TRAITS
1356
1358template <>
1359struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableStringArray> : bsl::true_type {};
1360
1361namespace s_baltst {
1362
1363 // =======================================================
1364 // class MySequenceWithNillableStringSequenceArraySequence
1365 // =======================================================
1366
1368
1369 // INSTANCE DATA
1370 bsl::string d_attribute1;
1371
1372 public:
1373 // TYPES
1374 enum {
1377
1378 enum {
1379 NUM_ATTRIBUTES = 1
1381
1382 enum {
1385
1386 // CONSTANTS
1387 static const char CLASS_NAME[];
1388
1390
1391 public:
1392 // CLASS METHODS
1393
1394 /// Return attribute information for the attribute indicated by the
1395 /// specified `id` if the attribute exists, and 0 otherwise.
1397
1398 /// Return attribute information for the attribute indicated by the
1399 /// specified `name` of the specified `nameLength` if the attribute
1400 /// exists, and 0 otherwise.
1402 const char *name,
1403 int nameLength);
1404
1405 // CREATORS
1406
1407 /// Create an object of type
1408 /// `MySequenceWithNillableStringSequenceArraySequence` having the
1409 /// default value. Use the optionally specified `basicAllocator` to
1410 /// supply memory. If `basicAllocator` is 0, the currently installed
1411 /// default allocator is used.
1413
1414 /// Create an object of type
1415 /// `MySequenceWithNillableStringSequenceArraySequence` having the value
1416 /// of the specified `original` object. Use the optionally specified
1417 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
1418 /// currently installed default allocator is used.
1420 bslma::Allocator *basicAllocator = 0);
1421
1422#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1423 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1424 /// Create an object of type
1425 /// `MySequenceWithNillableStringSequenceArraySequence` having the value
1426 /// of the specified `original` object. After performing this action,
1427 /// the `original` object will be left in a valid, but unspecified
1428 /// state.
1430
1431 /// Create an object of type
1432 /// `MySequenceWithNillableStringSequenceArraySequence` having the value
1433 /// of the specified `original` object. After performing this action,
1434 /// the `original` object will be left in a valid, but unspecified
1435 /// state. Use the optionally specified `basicAllocator` to supply
1436 /// memory. If `basicAllocator` is 0, the currently installed default
1437 /// allocator is used.
1439 bslma::Allocator *basicAllocator);
1440#endif
1441
1442 /// Destroy this object.
1444
1445 // MANIPULATORS
1446
1447 /// Assign to this object the value of the specified `rhs` object.
1449
1450#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1451 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1452 /// Assign to this object the value of the specified `rhs` object.
1453 /// After performing this action, the `rhs` object will be left in a
1454 /// valid, but unspecified state.
1456#endif
1457
1458 /// Reset this object to the default value (i.e., its value upon
1459 /// default construction).
1460 void reset();
1461
1462 /// Invoke the specified `manipulator` sequentially on the address of
1463 /// each (modifiable) attribute of this object, supplying `manipulator`
1464 /// with the corresponding attribute information structure until such
1465 /// invocation returns a non-zero value. Return the value from the
1466 /// last invocation of `manipulator` (i.e., the invocation that
1467 /// terminated the sequence).
1468 template <typename t_MANIPULATOR>
1469 int manipulateAttributes(t_MANIPULATOR& manipulator);
1470
1471 /// Invoke the specified `manipulator` on the address of
1472 /// the (modifiable) attribute indicated by the specified `id`,
1473 /// supplying `manipulator` with the corresponding attribute
1474 /// information structure. Return the value returned from the
1475 /// invocation of `manipulator` if `id` identifies an attribute of this
1476 /// class, and -1 otherwise.
1477 template <typename t_MANIPULATOR>
1478 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
1479
1480 /// Invoke the specified `manipulator` on the address of
1481 /// the (modifiable) attribute indicated by the specified `name` of the
1482 /// specified `nameLength`, supplying `manipulator` with the
1483 /// corresponding attribute information structure. Return the value
1484 /// returned from the invocation of `manipulator` if `name` identifies
1485 /// an attribute of this class, and -1 otherwise.
1486 template <typename t_MANIPULATOR>
1487 int manipulateAttribute(t_MANIPULATOR& manipulator,
1488 const char *name,
1489 int nameLength);
1490
1491 /// Return a reference to the modifiable "Attribute1" attribute of this
1492 /// object.
1494
1495 // ACCESSORS
1496
1497 /// Format this object to the specified output `stream` at the
1498 /// optionally specified indentation `level` and return a reference to
1499 /// the modifiable `stream`. If `level` is specified, optionally
1500 /// specify `spacesPerLevel`, the number of spaces per indentation level
1501 /// for this and all of its nested objects. Each line is indented by
1502 /// the absolute value of `level * spacesPerLevel`. If `level` is
1503 /// negative, suppress indentation of the first line. If
1504 /// `spacesPerLevel` is negative, suppress line breaks and format the
1505 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
1506 ///
1507 /// \note Note that a trailing newline is provided
1508 /// in multiline mode only.
1509 bsl::ostream& print(bsl::ostream& stream,
1510 int level = 0,
1511 int spacesPerLevel = 4) const;
1512
1513 /// Invoke the specified `accessor` sequentially on each
1514 /// (non-modifiable) attribute of this object, supplying `accessor`
1515 /// with the corresponding attribute information structure until such
1516 /// invocation returns a non-zero value. Return the value from the
1517 /// last invocation of `accessor` (i.e., the invocation that terminated
1518 /// the sequence).
1519 template <typename t_ACCESSOR>
1520 int accessAttributes(t_ACCESSOR& accessor) const;
1521
1522 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1523 /// of this object indicated by the specified `id`, supplying `accessor`
1524 /// with the corresponding attribute information structure. Return the
1525 /// value returned from the invocation of `accessor` if `id` identifies
1526 /// an attribute of this class, and -1 otherwise.
1527 template <typename t_ACCESSOR>
1528 int accessAttribute(t_ACCESSOR& accessor, int id) const;
1529
1530 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1531 /// of this object indicated by the specified `name` of the specified
1532 /// `nameLength`, supplying `accessor` with the corresponding attribute
1533 /// information structure. Return the value returned from the
1534 /// invocation of `accessor` if `name` identifies an attribute of this
1535 /// class, and -1 otherwise.
1536 template <typename t_ACCESSOR>
1537 int accessAttribute(t_ACCESSOR& accessor,
1538 const char *name,
1539 int nameLength) const;
1540
1541 /// Return a reference offering non-modifiable access to the
1542 /// "Attribute1" attribute of this object.
1543 const bsl::string& attribute1() const;
1544
1545 // HIDDEN FRIENDS
1546
1547 /// Return `true` if the specified `lhs` and `rhs` attribute objects
1548 /// have the same value, and `false` otherwise. Two attribute objects
1549 /// have the same value if each respective attribute has the same value.
1550 friend bool operator==(
1553 {
1554 return lhs.attribute1() == rhs.attribute1();
1555 }
1556
1557 /// Returns `!(lhs == rhs)`
1558 friend bool operator!=(
1561 {
1562 return !(lhs == rhs);
1563 }
1564
1565 /// Format the specified `rhs` to the specified output `stream` and
1566 /// return a reference to the modifiable `stream`.
1567 friend bsl::ostream& operator<<(
1568 bsl::ostream& stream,
1570 {
1571 return rhs.print(stream, 0, -1);
1572 }
1573};
1574
1575} // close package namespace
1576
1577// TRAITS
1578
1580template <>
1581struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableStringSequenceArraySequence> : bsl::true_type {};
1582
1583namespace s_baltst {
1584
1585 // ===================================
1586 // class MySequenceWithNillableIntList
1587 // ===================================
1588
1590
1591 // INSTANCE DATA
1593
1594 public:
1595 // TYPES
1596 enum {
1599
1600 enum {
1601 NUM_ATTRIBUTES = 1
1603
1604 enum {
1607
1608 // CONSTANTS
1609 static const char CLASS_NAME[];
1610
1612
1613 public:
1614 // CLASS METHODS
1615
1616 /// Return attribute information for the attribute indicated by the
1617 /// specified `id` if the attribute exists, and 0 otherwise.
1619
1620 /// Return attribute information for the attribute indicated by the
1621 /// specified `name` of the specified `nameLength` if the attribute
1622 /// exists, and 0 otherwise.
1624 const char *name,
1625 int nameLength);
1626
1627 // CREATORS
1628
1629 /// Create an object of type `MySequenceWithNillableIntList` having the
1630 /// default value. Use the optionally specified `basicAllocator` to
1631 /// supply memory. If `basicAllocator` is 0, the currently installed
1632 /// default allocator is used.
1634
1635 /// Create an object of type `MySequenceWithNillableIntList` having the
1636 /// value of the specified `original` object. Use the optionally
1637 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
1638 /// 0, the currently installed default allocator is used.
1640 bslma::Allocator *basicAllocator = 0);
1641
1642#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1643 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1644 /// Create an object of type `MySequenceWithNillableIntList` having the
1645 /// value of the specified `original` object. After performing this
1646 /// action, the `original` object will be left in a valid, but
1647 /// unspecified state.
1649
1650 /// Create an object of type `MySequenceWithNillableIntList` having the
1651 /// value of the specified `original` object. After performing this
1652 /// action, the `original` object will be left in a valid, but
1653 /// unspecified state. Use the optionally specified `basicAllocator` to
1654 /// supply memory. If `basicAllocator` is 0, the currently installed
1655 /// default allocator is used.
1657 bslma::Allocator *basicAllocator);
1658#endif
1659
1660 /// Destroy this object.
1662
1663 // MANIPULATORS
1664
1665 /// Assign to this object the value of the specified `rhs` object.
1667
1668#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1669 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1670 /// Assign to this object the value of the specified `rhs` object.
1671 /// After performing this action, the `rhs` object will be left in a
1672 /// valid, but unspecified state.
1674#endif
1675
1676 /// Reset this object to the default value (i.e., its value upon
1677 /// default construction).
1678 void reset();
1679
1680 /// Invoke the specified `manipulator` sequentially on the address of
1681 /// each (modifiable) attribute of this object, supplying `manipulator`
1682 /// with the corresponding attribute information structure until such
1683 /// invocation returns a non-zero value. Return the value from the
1684 /// last invocation of `manipulator` (i.e., the invocation that
1685 /// terminated the sequence).
1686 template <typename t_MANIPULATOR>
1687 int manipulateAttributes(t_MANIPULATOR& manipulator);
1688
1689 /// Invoke the specified `manipulator` on the address of
1690 /// the (modifiable) attribute indicated by the specified `id`,
1691 /// supplying `manipulator` with the corresponding attribute
1692 /// information structure. Return the value returned from the
1693 /// invocation of `manipulator` if `id` identifies an attribute of this
1694 /// class, and -1 otherwise.
1695 template <typename t_MANIPULATOR>
1696 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
1697
1698 /// Invoke the specified `manipulator` on the address of
1699 /// the (modifiable) attribute indicated by the specified `name` of the
1700 /// specified `nameLength`, supplying `manipulator` with the
1701 /// corresponding attribute information structure. Return the value
1702 /// returned from the invocation of `manipulator` if `name` identifies
1703 /// an attribute of this class, and -1 otherwise.
1704 template <typename t_MANIPULATOR>
1705 int manipulateAttribute(t_MANIPULATOR& manipulator,
1706 const char *name,
1707 int nameLength);
1708
1709 /// Return a reference to the modifiable "Attribute1" attribute of this
1710 /// object.
1712
1713 // ACCESSORS
1714
1715 /// Format this object to the specified output `stream` at the
1716 /// optionally specified indentation `level` and return a reference to
1717 /// the modifiable `stream`. If `level` is specified, optionally
1718 /// specify `spacesPerLevel`, the number of spaces per indentation level
1719 /// for this and all of its nested objects. Each line is indented by
1720 /// the absolute value of `level * spacesPerLevel`. If `level` is
1721 /// negative, suppress indentation of the first line. If
1722 /// `spacesPerLevel` is negative, suppress line breaks and format the
1723 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
1724 ///
1725 /// \note Note that a trailing newline is provided
1726 /// in multiline mode only.
1727 bsl::ostream& print(bsl::ostream& stream,
1728 int level = 0,
1729 int spacesPerLevel = 4) const;
1730
1731 /// Invoke the specified `accessor` sequentially on each
1732 /// (non-modifiable) attribute of this object, supplying `accessor`
1733 /// with the corresponding attribute information structure until such
1734 /// invocation returns a non-zero value. Return the value from the
1735 /// last invocation of `accessor` (i.e., the invocation that terminated
1736 /// the sequence).
1737 template <typename t_ACCESSOR>
1738 int accessAttributes(t_ACCESSOR& accessor) const;
1739
1740 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1741 /// of this object indicated by the specified `id`, supplying `accessor`
1742 /// with the corresponding attribute information structure. Return the
1743 /// value returned from the invocation of `accessor` if `id` identifies
1744 /// an attribute of this class, and -1 otherwise.
1745 template <typename t_ACCESSOR>
1746 int accessAttribute(t_ACCESSOR& accessor, int id) const;
1747
1748 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1749 /// of this object indicated by the specified `name` of the specified
1750 /// `nameLength`, supplying `accessor` with the corresponding attribute
1751 /// information structure. Return the value returned from the
1752 /// invocation of `accessor` if `name` identifies an attribute of this
1753 /// class, and -1 otherwise.
1754 template <typename t_ACCESSOR>
1755 int accessAttribute(t_ACCESSOR& accessor,
1756 const char *name,
1757 int nameLength) const;
1758
1759 /// Return a reference offering non-modifiable access to the
1760 /// "Attribute1" attribute of this object.
1762
1763 // HIDDEN FRIENDS
1764
1765 /// Return `true` if the specified `lhs` and `rhs` attribute objects
1766 /// have the same value, and `false` otherwise. Two attribute objects
1767 /// have the same value if each respective attribute has the same value.
1770 {
1771 return lhs.attribute1() == rhs.attribute1();
1772 }
1773
1774 /// Returns `!(lhs == rhs)`
1777 {
1778 return !(lhs == rhs);
1779 }
1780
1781 /// Format the specified `rhs` to the specified output `stream` and
1782 /// return a reference to the modifiable `stream`.
1783 friend bsl::ostream& operator<<(
1784 bsl::ostream& stream,
1786 {
1787 return rhs.print(stream, 0, -1);
1788 }
1789};
1790
1791} // close package namespace
1792
1793// TRAITS
1794
1796template <>
1797struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableIntList> : bsl::true_type {};
1798
1799namespace s_baltst {
1800
1801 // ============================================
1802 // class MySequenceWithNillableIntSequenceArray
1803 // ============================================
1804
1806
1807 // INSTANCE DATA
1809
1810 public:
1811 // TYPES
1812 enum {
1815
1816 enum {
1817 NUM_ATTRIBUTES = 1
1819
1820 enum {
1823
1824 // CONSTANTS
1825 static const char CLASS_NAME[];
1826
1828
1829 public:
1830 // CLASS METHODS
1831
1832 /// Return attribute information for the attribute indicated by the
1833 /// specified `id` if the attribute exists, and 0 otherwise.
1835
1836 /// Return attribute information for the attribute indicated by the
1837 /// specified `name` of the specified `nameLength` if the attribute
1838 /// exists, and 0 otherwise.
1840 const char *name,
1841 int nameLength);
1842
1843 // CREATORS
1844
1845 /// Create an object of type `MySequenceWithNillableIntSequenceArray`
1846 /// having the default value. Use the optionally specified
1847 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
1848 /// currently installed default allocator is used.
1850
1851 /// Create an object of type `MySequenceWithNillableIntSequenceArray`
1852 /// having the value of the specified `original` object. Use the
1853 /// optionally specified `basicAllocator` to supply memory. If
1854 /// `basicAllocator` is 0, the currently installed default allocator is
1855 /// used.
1857 bslma::Allocator *basicAllocator = 0);
1858
1859#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1860 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1861 /// Create an object of type `MySequenceWithNillableIntSequenceArray`
1862 /// having the value of the specified `original` object. After
1863 /// performing this action, the `original` object will be left in a
1864 /// valid, but unspecified state.
1866
1867 /// Create an object of type `MySequenceWithNillableIntSequenceArray`
1868 /// having the value of the specified `original` object. After
1869 /// performing this action, the `original` object will be left in a
1870 /// valid, but unspecified state. Use the optionally specified
1871 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
1872 /// currently installed default allocator is used.
1874 bslma::Allocator *basicAllocator);
1875#endif
1876
1877 /// Destroy this object.
1879
1880 // MANIPULATORS
1881
1882 /// Assign to this object the value of the specified `rhs` object.
1884
1885#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
1886 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
1887 /// Assign to this object the value of the specified `rhs` object.
1888 /// After performing this action, the `rhs` object will be left in a
1889 /// valid, but unspecified state.
1891#endif
1892
1893 /// Reset this object to the default value (i.e., its value upon
1894 /// default construction).
1895 void reset();
1896
1897 /// Invoke the specified `manipulator` sequentially on the address of
1898 /// each (modifiable) attribute of this object, supplying `manipulator`
1899 /// with the corresponding attribute information structure until such
1900 /// invocation returns a non-zero value. Return the value from the
1901 /// last invocation of `manipulator` (i.e., the invocation that
1902 /// terminated the sequence).
1903 template <typename t_MANIPULATOR>
1904 int manipulateAttributes(t_MANIPULATOR& manipulator);
1905
1906 /// Invoke the specified `manipulator` on the address of
1907 /// the (modifiable) attribute indicated by the specified `id`,
1908 /// supplying `manipulator` with the corresponding attribute
1909 /// information structure. Return the value returned from the
1910 /// invocation of `manipulator` if `id` identifies an attribute of this
1911 /// class, and -1 otherwise.
1912 template <typename t_MANIPULATOR>
1913 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
1914
1915 /// Invoke the specified `manipulator` on the address of
1916 /// the (modifiable) attribute indicated by the specified `name` of the
1917 /// specified `nameLength`, supplying `manipulator` with the
1918 /// corresponding attribute information structure. Return the value
1919 /// returned from the invocation of `manipulator` if `name` identifies
1920 /// an attribute of this class, and -1 otherwise.
1921 template <typename t_MANIPULATOR>
1922 int manipulateAttribute(t_MANIPULATOR& manipulator,
1923 const char *name,
1924 int nameLength);
1925
1926 /// Return a reference to the modifiable "Attribute1" attribute of this
1927 /// object.
1929
1930 // ACCESSORS
1931
1932 /// Format this object to the specified output `stream` at the
1933 /// optionally specified indentation `level` and return a reference to
1934 /// the modifiable `stream`. If `level` is specified, optionally
1935 /// specify `spacesPerLevel`, the number of spaces per indentation level
1936 /// for this and all of its nested objects. Each line is indented by
1937 /// the absolute value of `level * spacesPerLevel`. If `level` is
1938 /// negative, suppress indentation of the first line. If
1939 /// `spacesPerLevel` is negative, suppress line breaks and format the
1940 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
1941 ///
1942 /// \note Note that a trailing newline is provided
1943 /// in multiline mode only.
1944 bsl::ostream& print(bsl::ostream& stream,
1945 int level = 0,
1946 int spacesPerLevel = 4) const;
1947
1948 /// Invoke the specified `accessor` sequentially on each
1949 /// (non-modifiable) attribute of this object, supplying `accessor`
1950 /// with the corresponding attribute information structure until such
1951 /// invocation returns a non-zero value. Return the value from the
1952 /// last invocation of `accessor` (i.e., the invocation that terminated
1953 /// the sequence).
1954 template <typename t_ACCESSOR>
1955 int accessAttributes(t_ACCESSOR& accessor) const;
1956
1957 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1958 /// of this object indicated by the specified `id`, supplying `accessor`
1959 /// with the corresponding attribute information structure. Return the
1960 /// value returned from the invocation of `accessor` if `id` identifies
1961 /// an attribute of this class, and -1 otherwise.
1962 template <typename t_ACCESSOR>
1963 int accessAttribute(t_ACCESSOR& accessor, int id) const;
1964
1965 /// Invoke the specified `accessor` on the (non-modifiable) attribute
1966 /// of this object indicated by the specified `name` of the specified
1967 /// `nameLength`, supplying `accessor` with the corresponding attribute
1968 /// information structure. Return the value returned from the
1969 /// invocation of `accessor` if `name` identifies an attribute of this
1970 /// class, and -1 otherwise.
1971 template <typename t_ACCESSOR>
1972 int accessAttribute(t_ACCESSOR& accessor,
1973 const char *name,
1974 int nameLength) const;
1975
1976 /// Return a reference offering non-modifiable access to the
1977 /// "Attribute1" attribute of this object.
1979
1980 // HIDDEN FRIENDS
1981
1982 /// Return `true` if the specified `lhs` and `rhs` attribute objects
1983 /// have the same value, and `false` otherwise. Two attribute objects
1984 /// have the same value if each respective attribute has the same value.
1987 {
1988 return lhs.attribute1() == rhs.attribute1();
1989 }
1990
1991 /// Returns `!(lhs == rhs)`
1994 {
1995 return !(lhs == rhs);
1996 }
1997
1998 /// Format the specified `rhs` to the specified output `stream` and
1999 /// return a reference to the modifiable `stream`.
2000 friend bsl::ostream& operator<<(
2001 bsl::ostream& stream,
2003 {
2004 return rhs.print(stream, 0, -1);
2005 }
2006};
2007
2008} // close package namespace
2009
2010// TRAITS
2011
2013template <>
2014struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableIntSequenceArray> : bsl::true_type {};
2015
2016namespace s_baltst {
2017
2018 // ======================================
2019 // class MySequenceWithNillableStringList
2020 // ======================================
2021
2023
2024 // INSTANCE DATA
2026
2027 public:
2028 // TYPES
2029 enum {
2032
2033 enum {
2034 NUM_ATTRIBUTES = 1
2036
2037 enum {
2040
2041 // CONSTANTS
2042 static const char CLASS_NAME[];
2043
2045
2046 public:
2047 // CLASS METHODS
2048
2049 /// Return attribute information for the attribute indicated by the
2050 /// specified `id` if the attribute exists, and 0 otherwise.
2052
2053 /// Return attribute information for the attribute indicated by the
2054 /// specified `name` of the specified `nameLength` if the attribute
2055 /// exists, and 0 otherwise.
2057 const char *name,
2058 int nameLength);
2059
2060 // CREATORS
2061
2062 /// Create an object of type `MySequenceWithNillableStringList` having
2063 /// the default value. Use the optionally specified `basicAllocator` to
2064 /// supply memory. If `basicAllocator` is 0, the currently installed
2065 /// default allocator is used.
2067
2068 /// Create an object of type `MySequenceWithNillableStringList` having
2069 /// the value of the specified `original` object. Use the optionally
2070 /// specified `basicAllocator` to supply memory. If `basicAllocator` is
2071 /// 0, the currently installed default allocator is used.
2073 bslma::Allocator *basicAllocator = 0);
2074
2075#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
2076 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
2077 /// Create an object of type `MySequenceWithNillableStringList` having
2078 /// the value of the specified `original` object. After performing this
2079 /// action, the `original` object will be left in a valid, but
2080 /// unspecified state.
2082
2083 /// Create an object of type `MySequenceWithNillableStringList` having
2084 /// the value of the specified `original` object. After performing this
2085 /// action, the `original` object will be left in a valid, but
2086 /// unspecified state. Use the optionally specified `basicAllocator` to
2087 /// supply memory. If `basicAllocator` is 0, the currently installed
2088 /// default allocator is used.
2090 bslma::Allocator *basicAllocator);
2091#endif
2092
2093 /// Destroy this object.
2095
2096 // MANIPULATORS
2097
2098 /// Assign to this object the value of the specified `rhs` object.
2100
2101#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
2102 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
2103 /// Assign to this object the value of the specified `rhs` object.
2104 /// After performing this action, the `rhs` object will be left in a
2105 /// valid, but unspecified state.
2107#endif
2108
2109 /// Reset this object to the default value (i.e., its value upon
2110 /// default construction).
2111 void reset();
2112
2113 /// Invoke the specified `manipulator` sequentially on the address of
2114 /// each (modifiable) attribute of this object, supplying `manipulator`
2115 /// with the corresponding attribute information structure until such
2116 /// invocation returns a non-zero value. Return the value from the
2117 /// last invocation of `manipulator` (i.e., the invocation that
2118 /// terminated the sequence).
2119 template <typename t_MANIPULATOR>
2120 int manipulateAttributes(t_MANIPULATOR& manipulator);
2121
2122 /// Invoke the specified `manipulator` on the address of
2123 /// the (modifiable) attribute indicated by the specified `id`,
2124 /// supplying `manipulator` with the corresponding attribute
2125 /// information structure. Return the value returned from the
2126 /// invocation of `manipulator` if `id` identifies an attribute of this
2127 /// class, and -1 otherwise.
2128 template <typename t_MANIPULATOR>
2129 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
2130
2131 /// Invoke the specified `manipulator` on the address of
2132 /// the (modifiable) attribute indicated by the specified `name` of the
2133 /// specified `nameLength`, supplying `manipulator` with the
2134 /// corresponding attribute information structure. Return the value
2135 /// returned from the invocation of `manipulator` if `name` identifies
2136 /// an attribute of this class, and -1 otherwise.
2137 template <typename t_MANIPULATOR>
2138 int manipulateAttribute(t_MANIPULATOR& manipulator,
2139 const char *name,
2140 int nameLength);
2141
2142 /// Return a reference to the modifiable "Attribute1" attribute of this
2143 /// object.
2145
2146 // ACCESSORS
2147
2148 /// Format this object to the specified output `stream` at the
2149 /// optionally specified indentation `level` and return a reference to
2150 /// the modifiable `stream`. If `level` is specified, optionally
2151 /// specify `spacesPerLevel`, the number of spaces per indentation level
2152 /// for this and all of its nested objects. Each line is indented by
2153 /// the absolute value of `level * spacesPerLevel`. If `level` is
2154 /// negative, suppress indentation of the first line. If
2155 /// `spacesPerLevel` is negative, suppress line breaks and format the
2156 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
2157 ///
2158 /// \note Note that a trailing newline is provided
2159 /// in multiline mode only.
2160 bsl::ostream& print(bsl::ostream& stream,
2161 int level = 0,
2162 int spacesPerLevel = 4) const;
2163
2164 /// Invoke the specified `accessor` sequentially on each
2165 /// (non-modifiable) attribute of this object, supplying `accessor`
2166 /// with the corresponding attribute information structure until such
2167 /// invocation returns a non-zero value. Return the value from the
2168 /// last invocation of `accessor` (i.e., the invocation that terminated
2169 /// the sequence).
2170 template <typename t_ACCESSOR>
2171 int accessAttributes(t_ACCESSOR& accessor) const;
2172
2173 /// Invoke the specified `accessor` on the (non-modifiable) attribute
2174 /// of this object indicated by the specified `id`, supplying `accessor`
2175 /// with the corresponding attribute information structure. Return the
2176 /// value returned from the invocation of `accessor` if `id` identifies
2177 /// an attribute of this class, and -1 otherwise.
2178 template <typename t_ACCESSOR>
2179 int accessAttribute(t_ACCESSOR& accessor, int id) const;
2180
2181 /// Invoke the specified `accessor` on the (non-modifiable) attribute
2182 /// of this object indicated by the specified `name` of the specified
2183 /// `nameLength`, supplying `accessor` with the corresponding attribute
2184 /// information structure. Return the value returned from the
2185 /// invocation of `accessor` if `name` identifies an attribute of this
2186 /// class, and -1 otherwise.
2187 template <typename t_ACCESSOR>
2188 int accessAttribute(t_ACCESSOR& accessor,
2189 const char *name,
2190 int nameLength) const;
2191
2192 /// Return a reference offering non-modifiable access to the
2193 /// "Attribute1" attribute of this object.
2195
2196 // HIDDEN FRIENDS
2197
2198 /// Return `true` if the specified `lhs` and `rhs` attribute objects
2199 /// have the same value, and `false` otherwise. Two attribute objects
2200 /// have the same value if each respective attribute has the same value.
2203 {
2204 return lhs.attribute1() == rhs.attribute1();
2205 }
2206
2207 /// Returns `!(lhs == rhs)`
2210 {
2211 return !(lhs == rhs);
2212 }
2213
2214 /// Format the specified `rhs` to the specified output `stream` and
2215 /// return a reference to the modifiable `stream`.
2216 friend bsl::ostream& operator<<(
2217 bsl::ostream& stream,
2219 {
2220 return rhs.print(stream, 0, -1);
2221 }
2222};
2223
2224} // close package namespace
2225
2226// TRAITS
2227
2229template <>
2230struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableStringList> : bsl::true_type {};
2231
2232namespace s_baltst {
2233
2234 // ===============================================
2235 // class MySequenceWithNillableStringSequenceArray
2236 // ===============================================
2237
2239
2240 // INSTANCE DATA
2242
2243 public:
2244 // TYPES
2245 enum {
2248
2249 enum {
2250 NUM_ATTRIBUTES = 1
2252
2253 enum {
2256
2257 // CONSTANTS
2258 static const char CLASS_NAME[];
2259
2261
2262 public:
2263 // CLASS METHODS
2264
2265 /// Return attribute information for the attribute indicated by the
2266 /// specified `id` if the attribute exists, and 0 otherwise.
2268
2269 /// Return attribute information for the attribute indicated by the
2270 /// specified `name` of the specified `nameLength` if the attribute
2271 /// exists, and 0 otherwise.
2273 const char *name,
2274 int nameLength);
2275
2276 // CREATORS
2277
2278 /// Create an object of type `MySequenceWithNillableStringSequenceArray`
2279 /// having the default value. Use the optionally specified
2280 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
2281 /// currently installed default allocator is used.
2283
2284 /// Create an object of type `MySequenceWithNillableStringSequenceArray`
2285 /// having the value of the specified `original` object. Use the
2286 /// optionally specified `basicAllocator` to supply memory. If
2287 /// `basicAllocator` is 0, the currently installed default allocator is
2288 /// used.
2290 bslma::Allocator *basicAllocator = 0);
2291
2292#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
2293 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
2294 /// Create an object of type `MySequenceWithNillableStringSequenceArray`
2295 /// having the value of the specified `original` object. After
2296 /// performing this action, the `original` object will be left in a
2297 /// valid, but unspecified state.
2299
2300 /// Create an object of type `MySequenceWithNillableStringSequenceArray`
2301 /// having the value of the specified `original` object. After
2302 /// performing this action, the `original` object will be left in a
2303 /// valid, but unspecified state. Use the optionally specified
2304 /// `basicAllocator` to supply memory. If `basicAllocator` is 0, the
2305 /// currently installed default allocator is used.
2307 bslma::Allocator *basicAllocator);
2308#endif
2309
2310 /// Destroy this object.
2312
2313 // MANIPULATORS
2314
2315 /// Assign to this object the value of the specified `rhs` object.
2317
2318#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
2319 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
2320 /// Assign to this object the value of the specified `rhs` object.
2321 /// After performing this action, the `rhs` object will be left in a
2322 /// valid, but unspecified state.
2324#endif
2325
2326 /// Reset this object to the default value (i.e., its value upon
2327 /// default construction).
2328 void reset();
2329
2330 /// Invoke the specified `manipulator` sequentially on the address of
2331 /// each (modifiable) attribute of this object, supplying `manipulator`
2332 /// with the corresponding attribute information structure until such
2333 /// invocation returns a non-zero value. Return the value from the
2334 /// last invocation of `manipulator` (i.e., the invocation that
2335 /// terminated the sequence).
2336 template <typename t_MANIPULATOR>
2337 int manipulateAttributes(t_MANIPULATOR& manipulator);
2338
2339 /// Invoke the specified `manipulator` on the address of
2340 /// the (modifiable) attribute indicated by the specified `id`,
2341 /// supplying `manipulator` with the corresponding attribute
2342 /// information structure. Return the value returned from the
2343 /// invocation of `manipulator` if `id` identifies an attribute of this
2344 /// class, and -1 otherwise.
2345 template <typename t_MANIPULATOR>
2346 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
2347
2348 /// Invoke the specified `manipulator` on the address of
2349 /// the (modifiable) attribute indicated by the specified `name` of the
2350 /// specified `nameLength`, supplying `manipulator` with the
2351 /// corresponding attribute information structure. Return the value
2352 /// returned from the invocation of `manipulator` if `name` identifies
2353 /// an attribute of this class, and -1 otherwise.
2354 template <typename t_MANIPULATOR>
2355 int manipulateAttribute(t_MANIPULATOR& manipulator,
2356 const char *name,
2357 int nameLength);
2358
2359 /// Return a reference to the modifiable "Attribute1" attribute of this
2360 /// object.
2362
2363 // ACCESSORS
2364
2365 /// Format this object to the specified output `stream` at the
2366 /// optionally specified indentation `level` and return a reference to
2367 /// the modifiable `stream`. If `level` is specified, optionally
2368 /// specify `spacesPerLevel`, the number of spaces per indentation level
2369 /// for this and all of its nested objects. Each line is indented by
2370 /// the absolute value of `level * spacesPerLevel`. If `level` is
2371 /// negative, suppress indentation of the first line. If
2372 /// `spacesPerLevel` is negative, suppress line breaks and format the
2373 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
2374 ///
2375 /// \note Note that a trailing newline is provided
2376 /// in multiline mode only.
2377 bsl::ostream& print(bsl::ostream& stream,
2378 int level = 0,
2379 int spacesPerLevel = 4) const;
2380
2381 /// Invoke the specified `accessor` sequentially on each
2382 /// (non-modifiable) attribute of this object, supplying `accessor`
2383 /// with the corresponding attribute information structure until such
2384 /// invocation returns a non-zero value. Return the value from the
2385 /// last invocation of `accessor` (i.e., the invocation that terminated
2386 /// the sequence).
2387 template <typename t_ACCESSOR>
2388 int accessAttributes(t_ACCESSOR& accessor) const;
2389
2390 /// Invoke the specified `accessor` on the (non-modifiable) attribute
2391 /// of this object indicated by the specified `id`, supplying `accessor`
2392 /// with the corresponding attribute information structure. Return the
2393 /// value returned from the invocation of `accessor` if `id` identifies
2394 /// an attribute of this class, and -1 otherwise.
2395 template <typename t_ACCESSOR>
2396 int accessAttribute(t_ACCESSOR& accessor, int id) const;
2397
2398 /// Invoke the specified `accessor` on the (non-modifiable) attribute
2399 /// of this object indicated by the specified `name` of the specified
2400 /// `nameLength`, supplying `accessor` with the corresponding attribute
2401 /// information structure. Return the value returned from the
2402 /// invocation of `accessor` if `name` identifies an attribute of this
2403 /// class, and -1 otherwise.
2404 template <typename t_ACCESSOR>
2405 int accessAttribute(t_ACCESSOR& accessor,
2406 const char *name,
2407 int nameLength) const;
2408
2409 /// Return a reference offering non-modifiable access to the
2410 /// "Attribute1" attribute of this object.
2412
2413 // HIDDEN FRIENDS
2414
2415 /// Return `true` if the specified `lhs` and `rhs` attribute objects
2416 /// have the same value, and `false` otherwise. Two attribute objects
2417 /// have the same value if each respective attribute has the same value.
2418 friend bool operator==(
2421 {
2422 return lhs.attribute1() == rhs.attribute1();
2423 }
2424
2425 /// Returns `!(lhs == rhs)`
2426 friend bool operator!=(
2429 {
2430 return !(lhs == rhs);
2431 }
2432
2433 /// Format the specified `rhs` to the specified output `stream` and
2434 /// return a reference to the modifiable `stream`.
2435 friend bsl::ostream& operator<<(
2436 bsl::ostream& stream,
2438 {
2439 return rhs.print(stream, 0, -1);
2440 }
2441};
2442
2443} // close package namespace
2444
2445// TRAITS
2446
2448template <>
2449struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithNillableStringSequenceArray> : bsl::true_type {};
2450
2451// ============================================================================
2452// INLINE DEFINITIONS
2453// ============================================================================
2454
2455namespace s_baltst {
2456
2457 // ----------------------------
2458 // class MySequenceWithNillable
2459 // ----------------------------
2460
2461// CLASS METHODS
2462// MANIPULATORS
2463template <typename t_MANIPULATOR>
2465{
2466 int ret;
2467
2468 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2469 if (ret) {
2470 return ret;
2471 }
2472
2473 ret = manipulator(&d_myNillable, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MY_NILLABLE]);
2474 if (ret) {
2475 return ret;
2476 }
2477
2478 ret = manipulator(&d_attribute2, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE2]);
2479 if (ret) {
2480 return ret;
2481 }
2482
2483 return 0;
2484}
2485
2486template <typename t_MANIPULATOR>
2487int MySequenceWithNillable::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
2488{
2489 enum { NOT_FOUND = -1 };
2490
2491 switch (id) {
2493 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2494 }
2496 return manipulator(&d_myNillable, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MY_NILLABLE]);
2497 }
2499 return manipulator(&d_attribute2, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE2]);
2500 }
2501 default:
2502 return NOT_FOUND;
2503 }
2504}
2505
2506template <typename t_MANIPULATOR>
2508 t_MANIPULATOR& manipulator,
2509 const char *name,
2510 int nameLength)
2511{
2512 enum { NOT_FOUND = -1 };
2513
2514 const bdlat_AttributeInfo *attributeInfo =
2515 lookupAttributeInfo(name, nameLength);
2516 if (0 == attributeInfo) {
2517 return NOT_FOUND;
2518 }
2519
2520 return manipulateAttribute(manipulator, attributeInfo->d_id);
2521}
2522
2523inline
2525{
2526 return d_attribute1;
2527}
2528
2529inline
2534
2535inline
2537{
2538 return d_attribute2;
2539}
2540
2541// ACCESSORS
2542template <typename t_ACCESSOR>
2543int MySequenceWithNillable::accessAttributes(t_ACCESSOR& accessor) const
2544{
2545 int ret;
2546
2547 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2548 if (ret) {
2549 return ret;
2550 }
2551
2552 ret = accessor(d_myNillable, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MY_NILLABLE]);
2553 if (ret) {
2554 return ret;
2555 }
2556
2557 ret = accessor(d_attribute2, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE2]);
2558 if (ret) {
2559 return ret;
2560 }
2561
2562 return 0;
2563}
2564
2565template <typename t_ACCESSOR>
2566int MySequenceWithNillable::accessAttribute(t_ACCESSOR& accessor, int id) const
2567{
2568 enum { NOT_FOUND = -1 };
2569
2570 switch (id) {
2572 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2573 }
2575 return accessor(d_myNillable, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MY_NILLABLE]);
2576 }
2578 return accessor(d_attribute2, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE2]);
2579 }
2580 default:
2581 return NOT_FOUND;
2582 }
2583}
2584
2585template <typename t_ACCESSOR>
2587 t_ACCESSOR& accessor,
2588 const char *name,
2589 int nameLength) const
2590{
2591 enum { NOT_FOUND = -1 };
2592
2593 const bdlat_AttributeInfo *attributeInfo =
2594 lookupAttributeInfo(name, nameLength);
2595 if (0 == attributeInfo) {
2596 return NOT_FOUND;
2597 }
2598
2599 return accessAttribute(accessor, attributeInfo->d_id);
2600}
2601
2602inline
2604{
2605 return d_attribute1;
2606}
2607
2608inline
2610{
2611 return d_myNillable;
2612}
2613
2614inline
2616{
2617 return d_attribute2;
2618}
2619
2620
2621
2622 // ----------------------------------------
2623 // class MySequenceWithNillableBase64Binary
2624 // ----------------------------------------
2625
2626// CLASS METHODS
2627// MANIPULATORS
2628template <typename t_MANIPULATOR>
2630{
2631 int ret;
2632
2633 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2634 if (ret) {
2635 return ret;
2636 }
2637
2638 return 0;
2639}
2640
2641template <typename t_MANIPULATOR>
2642int MySequenceWithNillableBase64Binary::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
2643{
2644 enum { NOT_FOUND = -1 };
2645
2646 switch (id) {
2648 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2649 }
2650 default:
2651 return NOT_FOUND;
2652 }
2653}
2654
2655template <typename t_MANIPULATOR>
2657 t_MANIPULATOR& manipulator,
2658 const char *name,
2659 int nameLength)
2660{
2661 enum { NOT_FOUND = -1 };
2662
2663 const bdlat_AttributeInfo *attributeInfo =
2664 lookupAttributeInfo(name, nameLength);
2665 if (0 == attributeInfo) {
2666 return NOT_FOUND;
2667 }
2668
2669 return manipulateAttribute(manipulator, attributeInfo->d_id);
2670}
2671
2672inline
2677
2678// ACCESSORS
2679template <typename t_ACCESSOR>
2681{
2682 int ret;
2683
2684 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2685 if (ret) {
2686 return ret;
2687 }
2688
2689 return 0;
2690}
2691
2692template <typename t_ACCESSOR>
2693int MySequenceWithNillableBase64Binary::accessAttribute(t_ACCESSOR& accessor, int id) const
2694{
2695 enum { NOT_FOUND = -1 };
2696
2697 switch (id) {
2699 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2700 }
2701 default:
2702 return NOT_FOUND;
2703 }
2704}
2705
2706template <typename t_ACCESSOR>
2708 t_ACCESSOR& accessor,
2709 const char *name,
2710 int nameLength) const
2711{
2712 enum { NOT_FOUND = -1 };
2713
2714 const bdlat_AttributeInfo *attributeInfo =
2715 lookupAttributeInfo(name, nameLength);
2716 if (0 == attributeInfo) {
2717 return NOT_FOUND;
2718 }
2719
2720 return accessAttribute(accessor, attributeInfo->d_id);
2721}
2722
2723inline
2728
2729
2730
2731 // -------------------------------------
2732 // class MySequenceWithNillableHexBinary
2733 // -------------------------------------
2734
2735// CLASS METHODS
2736// MANIPULATORS
2737template <typename t_MANIPULATOR>
2739{
2740 int ret;
2741
2742 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2743 if (ret) {
2744 return ret;
2745 }
2746
2747 return 0;
2748}
2749
2750template <typename t_MANIPULATOR>
2751int MySequenceWithNillableHexBinary::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
2752{
2753 enum { NOT_FOUND = -1 };
2754
2755 switch (id) {
2757 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2758 }
2759 default:
2760 return NOT_FOUND;
2761 }
2762}
2763
2764template <typename t_MANIPULATOR>
2766 t_MANIPULATOR& manipulator,
2767 const char *name,
2768 int nameLength)
2769{
2770 enum { NOT_FOUND = -1 };
2771
2772 const bdlat_AttributeInfo *attributeInfo =
2773 lookupAttributeInfo(name, nameLength);
2774 if (0 == attributeInfo) {
2775 return NOT_FOUND;
2776 }
2777
2778 return manipulateAttribute(manipulator, attributeInfo->d_id);
2779}
2780
2781inline
2786
2787// ACCESSORS
2788template <typename t_ACCESSOR>
2790{
2791 int ret;
2792
2793 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2794 if (ret) {
2795 return ret;
2796 }
2797
2798 return 0;
2799}
2800
2801template <typename t_ACCESSOR>
2802int MySequenceWithNillableHexBinary::accessAttribute(t_ACCESSOR& accessor, int id) const
2803{
2804 enum { NOT_FOUND = -1 };
2805
2806 switch (id) {
2808 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2809 }
2810 default:
2811 return NOT_FOUND;
2812 }
2813}
2814
2815template <typename t_ACCESSOR>
2817 t_ACCESSOR& accessor,
2818 const char *name,
2819 int nameLength) const
2820{
2821 enum { NOT_FOUND = -1 };
2822
2823 const bdlat_AttributeInfo *attributeInfo =
2824 lookupAttributeInfo(name, nameLength);
2825 if (0 == attributeInfo) {
2826 return NOT_FOUND;
2827 }
2828
2829 return accessAttribute(accessor, attributeInfo->d_id);
2830}
2831
2832inline
2834{
2835 return d_attribute1;
2836}
2837
2838
2839
2840 // ------------------------------------
2841 // class MySequenceWithNillableIntArray
2842 // ------------------------------------
2843
2844// CLASS METHODS
2845// MANIPULATORS
2846template <typename t_MANIPULATOR>
2848{
2849 int ret;
2850
2851 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2852 if (ret) {
2853 return ret;
2854 }
2855
2856 return 0;
2857}
2858
2859template <typename t_MANIPULATOR>
2860int MySequenceWithNillableIntArray::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
2861{
2862 enum { NOT_FOUND = -1 };
2863
2864 switch (id) {
2866 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2867 }
2868 default:
2869 return NOT_FOUND;
2870 }
2871}
2872
2873template <typename t_MANIPULATOR>
2875 t_MANIPULATOR& manipulator,
2876 const char *name,
2877 int nameLength)
2878{
2879 enum { NOT_FOUND = -1 };
2880
2881 const bdlat_AttributeInfo *attributeInfo =
2882 lookupAttributeInfo(name, nameLength);
2883 if (0 == attributeInfo) {
2884 return NOT_FOUND;
2885 }
2886
2887 return manipulateAttribute(manipulator, attributeInfo->d_id);
2888}
2889
2890inline
2895
2896// ACCESSORS
2897template <typename t_ACCESSOR>
2899{
2900 int ret;
2901
2902 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2903 if (ret) {
2904 return ret;
2905 }
2906
2907 return 0;
2908}
2909
2910template <typename t_ACCESSOR>
2911int MySequenceWithNillableIntArray::accessAttribute(t_ACCESSOR& accessor, int id) const
2912{
2913 enum { NOT_FOUND = -1 };
2914
2915 switch (id) {
2917 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2918 }
2919 default:
2920 return NOT_FOUND;
2921 }
2922}
2923
2924template <typename t_ACCESSOR>
2926 t_ACCESSOR& accessor,
2927 const char *name,
2928 int nameLength) const
2929{
2930 enum { NOT_FOUND = -1 };
2931
2932 const bdlat_AttributeInfo *attributeInfo =
2933 lookupAttributeInfo(name, nameLength);
2934 if (0 == attributeInfo) {
2935 return NOT_FOUND;
2936 }
2937
2938 return accessAttribute(accessor, attributeInfo->d_id);
2939}
2940
2941inline
2943{
2944 return d_attribute1;
2945}
2946
2947
2948
2949 // ----------------------------------------------------
2950 // class MySequenceWithNillableIntSequenceArraySequence
2951 // ----------------------------------------------------
2952
2953// CLASS METHODS
2954// MANIPULATORS
2955template <typename t_MANIPULATOR>
2957{
2958 int ret;
2959
2960 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2961 if (ret) {
2962 return ret;
2963 }
2964
2965 return 0;
2966}
2967
2968template <typename t_MANIPULATOR>
2970{
2971 enum { NOT_FOUND = -1 };
2972
2973 switch (id) {
2975 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
2976 }
2977 default:
2978 return NOT_FOUND;
2979 }
2980}
2981
2982template <typename t_MANIPULATOR>
2984 t_MANIPULATOR& manipulator,
2985 const char *name,
2986 int nameLength)
2987{
2988 enum { NOT_FOUND = -1 };
2989
2990 const bdlat_AttributeInfo *attributeInfo =
2991 lookupAttributeInfo(name, nameLength);
2992 if (0 == attributeInfo) {
2993 return NOT_FOUND;
2994 }
2995
2996 return manipulateAttribute(manipulator, attributeInfo->d_id);
2997}
2998
2999inline
3001{
3002 return d_attribute1;
3003}
3004
3005// ACCESSORS
3006template <typename t_ACCESSOR>
3008{
3009 int ret;
3010
3011 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3012 if (ret) {
3013 return ret;
3014 }
3015
3016 return 0;
3017}
3018
3019template <typename t_ACCESSOR>
3021{
3022 enum { NOT_FOUND = -1 };
3023
3024 switch (id) {
3026 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3027 }
3028 default:
3029 return NOT_FOUND;
3030 }
3031}
3032
3033template <typename t_ACCESSOR>
3035 t_ACCESSOR& accessor,
3036 const char *name,
3037 int nameLength) const
3038{
3039 enum { NOT_FOUND = -1 };
3040
3041 const bdlat_AttributeInfo *attributeInfo =
3042 lookupAttributeInfo(name, nameLength);
3043 if (0 == attributeInfo) {
3044 return NOT_FOUND;
3045 }
3046
3047 return accessAttribute(accessor, attributeInfo->d_id);
3048}
3049
3050inline
3052{
3053 return d_attribute1;
3054}
3055
3056
3057
3058 // ---------------------------------------
3059 // class MySequenceWithNillableStringArray
3060 // ---------------------------------------
3061
3062// CLASS METHODS
3063// MANIPULATORS
3064template <typename t_MANIPULATOR>
3066{
3067 int ret;
3068
3069 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3070 if (ret) {
3071 return ret;
3072 }
3073
3074 return 0;
3075}
3076
3077template <typename t_MANIPULATOR>
3078int MySequenceWithNillableStringArray::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
3079{
3080 enum { NOT_FOUND = -1 };
3081
3082 switch (id) {
3084 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3085 }
3086 default:
3087 return NOT_FOUND;
3088 }
3089}
3090
3091template <typename t_MANIPULATOR>
3093 t_MANIPULATOR& manipulator,
3094 const char *name,
3095 int nameLength)
3096{
3097 enum { NOT_FOUND = -1 };
3098
3099 const bdlat_AttributeInfo *attributeInfo =
3100 lookupAttributeInfo(name, nameLength);
3101 if (0 == attributeInfo) {
3102 return NOT_FOUND;
3103 }
3104
3105 return manipulateAttribute(manipulator, attributeInfo->d_id);
3106}
3107
3108inline
3113
3114// ACCESSORS
3115template <typename t_ACCESSOR>
3117{
3118 int ret;
3119
3120 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3121 if (ret) {
3122 return ret;
3123 }
3124
3125 return 0;
3126}
3127
3128template <typename t_ACCESSOR>
3129int MySequenceWithNillableStringArray::accessAttribute(t_ACCESSOR& accessor, int id) const
3130{
3131 enum { NOT_FOUND = -1 };
3132
3133 switch (id) {
3135 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3136 }
3137 default:
3138 return NOT_FOUND;
3139 }
3140}
3141
3142template <typename t_ACCESSOR>
3144 t_ACCESSOR& accessor,
3145 const char *name,
3146 int nameLength) const
3147{
3148 enum { NOT_FOUND = -1 };
3149
3150 const bdlat_AttributeInfo *attributeInfo =
3151 lookupAttributeInfo(name, nameLength);
3152 if (0 == attributeInfo) {
3153 return NOT_FOUND;
3154 }
3155
3156 return accessAttribute(accessor, attributeInfo->d_id);
3157}
3158
3159inline
3164
3165
3166
3167 // -------------------------------------------------------
3168 // class MySequenceWithNillableStringSequenceArraySequence
3169 // -------------------------------------------------------
3170
3171// CLASS METHODS
3172// MANIPULATORS
3173template <typename t_MANIPULATOR>
3175{
3176 int ret;
3177
3178 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3179 if (ret) {
3180 return ret;
3181 }
3182
3183 return 0;
3184}
3185
3186template <typename t_MANIPULATOR>
3188{
3189 enum { NOT_FOUND = -1 };
3190
3191 switch (id) {
3193 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3194 }
3195 default:
3196 return NOT_FOUND;
3197 }
3198}
3199
3200template <typename t_MANIPULATOR>
3202 t_MANIPULATOR& manipulator,
3203 const char *name,
3204 int nameLength)
3205{
3206 enum { NOT_FOUND = -1 };
3207
3208 const bdlat_AttributeInfo *attributeInfo =
3209 lookupAttributeInfo(name, nameLength);
3210 if (0 == attributeInfo) {
3211 return NOT_FOUND;
3212 }
3213
3214 return manipulateAttribute(manipulator, attributeInfo->d_id);
3215}
3216
3217inline
3222
3223// ACCESSORS
3224template <typename t_ACCESSOR>
3226{
3227 int ret;
3228
3229 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3230 if (ret) {
3231 return ret;
3232 }
3233
3234 return 0;
3235}
3236
3237template <typename t_ACCESSOR>
3239{
3240 enum { NOT_FOUND = -1 };
3241
3242 switch (id) {
3244 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3245 }
3246 default:
3247 return NOT_FOUND;
3248 }
3249}
3250
3251template <typename t_ACCESSOR>
3253 t_ACCESSOR& accessor,
3254 const char *name,
3255 int nameLength) const
3256{
3257 enum { NOT_FOUND = -1 };
3258
3259 const bdlat_AttributeInfo *attributeInfo =
3260 lookupAttributeInfo(name, nameLength);
3261 if (0 == attributeInfo) {
3262 return NOT_FOUND;
3263 }
3264
3265 return accessAttribute(accessor, attributeInfo->d_id);
3266}
3267
3268inline
3270{
3271 return d_attribute1;
3272}
3273
3274
3275
3276 // -----------------------------------
3277 // class MySequenceWithNillableIntList
3278 // -----------------------------------
3279
3280// CLASS METHODS
3281// MANIPULATORS
3282template <typename t_MANIPULATOR>
3284{
3285 int ret;
3286
3287 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3288 if (ret) {
3289 return ret;
3290 }
3291
3292 return 0;
3293}
3294
3295template <typename t_MANIPULATOR>
3296int MySequenceWithNillableIntList::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
3297{
3298 enum { NOT_FOUND = -1 };
3299
3300 switch (id) {
3302 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3303 }
3304 default:
3305 return NOT_FOUND;
3306 }
3307}
3308
3309template <typename t_MANIPULATOR>
3311 t_MANIPULATOR& manipulator,
3312 const char *name,
3313 int nameLength)
3314{
3315 enum { NOT_FOUND = -1 };
3316
3317 const bdlat_AttributeInfo *attributeInfo =
3318 lookupAttributeInfo(name, nameLength);
3319 if (0 == attributeInfo) {
3320 return NOT_FOUND;
3321 }
3322
3323 return manipulateAttribute(manipulator, attributeInfo->d_id);
3324}
3325
3326inline
3331
3332// ACCESSORS
3333template <typename t_ACCESSOR>
3335{
3336 int ret;
3337
3338 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3339 if (ret) {
3340 return ret;
3341 }
3342
3343 return 0;
3344}
3345
3346template <typename t_ACCESSOR>
3347int MySequenceWithNillableIntList::accessAttribute(t_ACCESSOR& accessor, int id) const
3348{
3349 enum { NOT_FOUND = -1 };
3350
3351 switch (id) {
3353 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3354 }
3355 default:
3356 return NOT_FOUND;
3357 }
3358}
3359
3360template <typename t_ACCESSOR>
3362 t_ACCESSOR& accessor,
3363 const char *name,
3364 int nameLength) const
3365{
3366 enum { NOT_FOUND = -1 };
3367
3368 const bdlat_AttributeInfo *attributeInfo =
3369 lookupAttributeInfo(name, nameLength);
3370 if (0 == attributeInfo) {
3371 return NOT_FOUND;
3372 }
3373
3374 return accessAttribute(accessor, attributeInfo->d_id);
3375}
3376
3377inline
3379{
3380 return d_attribute1;
3381}
3382
3383
3384
3385 // --------------------------------------------
3386 // class MySequenceWithNillableIntSequenceArray
3387 // --------------------------------------------
3388
3389// CLASS METHODS
3390// MANIPULATORS
3391template <typename t_MANIPULATOR>
3393{
3394 int ret;
3395
3396 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3397 if (ret) {
3398 return ret;
3399 }
3400
3401 return 0;
3402}
3403
3404template <typename t_MANIPULATOR>
3406{
3407 enum { NOT_FOUND = -1 };
3408
3409 switch (id) {
3411 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3412 }
3413 default:
3414 return NOT_FOUND;
3415 }
3416}
3417
3418template <typename t_MANIPULATOR>
3420 t_MANIPULATOR& manipulator,
3421 const char *name,
3422 int nameLength)
3423{
3424 enum { NOT_FOUND = -1 };
3425
3426 const bdlat_AttributeInfo *attributeInfo =
3427 lookupAttributeInfo(name, nameLength);
3428 if (0 == attributeInfo) {
3429 return NOT_FOUND;
3430 }
3431
3432 return manipulateAttribute(manipulator, attributeInfo->d_id);
3433}
3434
3435inline
3440
3441// ACCESSORS
3442template <typename t_ACCESSOR>
3444{
3445 int ret;
3446
3447 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3448 if (ret) {
3449 return ret;
3450 }
3451
3452 return 0;
3453}
3454
3455template <typename t_ACCESSOR>
3456int MySequenceWithNillableIntSequenceArray::accessAttribute(t_ACCESSOR& accessor, int id) const
3457{
3458 enum { NOT_FOUND = -1 };
3459
3460 switch (id) {
3462 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3463 }
3464 default:
3465 return NOT_FOUND;
3466 }
3467}
3468
3469template <typename t_ACCESSOR>
3471 t_ACCESSOR& accessor,
3472 const char *name,
3473 int nameLength) const
3474{
3475 enum { NOT_FOUND = -1 };
3476
3477 const bdlat_AttributeInfo *attributeInfo =
3478 lookupAttributeInfo(name, nameLength);
3479 if (0 == attributeInfo) {
3480 return NOT_FOUND;
3481 }
3482
3483 return accessAttribute(accessor, attributeInfo->d_id);
3484}
3485
3486inline
3491
3492
3493
3494 // --------------------------------------
3495 // class MySequenceWithNillableStringList
3496 // --------------------------------------
3497
3498// CLASS METHODS
3499// MANIPULATORS
3500template <typename t_MANIPULATOR>
3502{
3503 int ret;
3504
3505 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3506 if (ret) {
3507 return ret;
3508 }
3509
3510 return 0;
3511}
3512
3513template <typename t_MANIPULATOR>
3514int MySequenceWithNillableStringList::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
3515{
3516 enum { NOT_FOUND = -1 };
3517
3518 switch (id) {
3520 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3521 }
3522 default:
3523 return NOT_FOUND;
3524 }
3525}
3526
3527template <typename t_MANIPULATOR>
3529 t_MANIPULATOR& manipulator,
3530 const char *name,
3531 int nameLength)
3532{
3533 enum { NOT_FOUND = -1 };
3534
3535 const bdlat_AttributeInfo *attributeInfo =
3536 lookupAttributeInfo(name, nameLength);
3537 if (0 == attributeInfo) {
3538 return NOT_FOUND;
3539 }
3540
3541 return manipulateAttribute(manipulator, attributeInfo->d_id);
3542}
3543
3544inline
3549
3550// ACCESSORS
3551template <typename t_ACCESSOR>
3553{
3554 int ret;
3555
3556 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3557 if (ret) {
3558 return ret;
3559 }
3560
3561 return 0;
3562}
3563
3564template <typename t_ACCESSOR>
3565int MySequenceWithNillableStringList::accessAttribute(t_ACCESSOR& accessor, int id) const
3566{
3567 enum { NOT_FOUND = -1 };
3568
3569 switch (id) {
3571 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3572 }
3573 default:
3574 return NOT_FOUND;
3575 }
3576}
3577
3578template <typename t_ACCESSOR>
3580 t_ACCESSOR& accessor,
3581 const char *name,
3582 int nameLength) const
3583{
3584 enum { NOT_FOUND = -1 };
3585
3586 const bdlat_AttributeInfo *attributeInfo =
3587 lookupAttributeInfo(name, nameLength);
3588 if (0 == attributeInfo) {
3589 return NOT_FOUND;
3590 }
3591
3592 return accessAttribute(accessor, attributeInfo->d_id);
3593}
3594
3595inline
3600
3601
3602
3603 // -----------------------------------------------
3604 // class MySequenceWithNillableStringSequenceArray
3605 // -----------------------------------------------
3606
3607// CLASS METHODS
3608// MANIPULATORS
3609template <typename t_MANIPULATOR>
3611{
3612 int ret;
3613
3614 ret = manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3615 if (ret) {
3616 return ret;
3617 }
3618
3619 return 0;
3620}
3621
3622template <typename t_MANIPULATOR>
3624{
3625 enum { NOT_FOUND = -1 };
3626
3627 switch (id) {
3629 return manipulator(&d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3630 }
3631 default:
3632 return NOT_FOUND;
3633 }
3634}
3635
3636template <typename t_MANIPULATOR>
3638 t_MANIPULATOR& manipulator,
3639 const char *name,
3640 int nameLength)
3641{
3642 enum { NOT_FOUND = -1 };
3643
3644 const bdlat_AttributeInfo *attributeInfo =
3645 lookupAttributeInfo(name, nameLength);
3646 if (0 == attributeInfo) {
3647 return NOT_FOUND;
3648 }
3649
3650 return manipulateAttribute(manipulator, attributeInfo->d_id);
3651}
3652
3653inline
3658
3659// ACCESSORS
3660template <typename t_ACCESSOR>
3662{
3663 int ret;
3664
3665 ret = accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3666 if (ret) {
3667 return ret;
3668 }
3669
3670 return 0;
3671}
3672
3673template <typename t_ACCESSOR>
3675{
3676 enum { NOT_FOUND = -1 };
3677
3678 switch (id) {
3680 return accessor(d_attribute1, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_ATTRIBUTE1]);
3681 }
3682 default:
3683 return NOT_FOUND;
3684 }
3685}
3686
3687template <typename t_ACCESSOR>
3689 t_ACCESSOR& accessor,
3690 const char *name,
3691 int nameLength) const
3692{
3693 enum { NOT_FOUND = -1 };
3694
3695 const bdlat_AttributeInfo *attributeInfo =
3696 lookupAttributeInfo(name, nameLength);
3697 if (0 == attributeInfo) {
3698 return NOT_FOUND;
3699 }
3700
3701 return accessAttribute(accessor, attributeInfo->d_id);
3702}
3703
3704inline
3709
3710} // close package namespace
3711
3712// FREE FUNCTIONS
3713
3714
3715#endif
3716
3717// GENERATED BY BLP_BAS_CODEGEN_2025.08.21
3718// USING bas_codegen.pl s_baltst_mysequencewithnillable.xsd --mode msg --includedir . --msgComponent mysequencewithnillable --noRecurse --noExternalization --noHashSupport --noAggregateConversion
3719// ----------------------------------------------------------------------------
3720// NOTICE:
3721// Copyright 2025 Bloomberg Finance L.P. All rights reserved.
3722// Property of Bloomberg Finance L.P. (BFLP)
3723// This software is made available solely pursuant to the
3724// terms of a BFLP license agreement which governs its use.
3725// ------------------------------- END-OF-FILE --------------------------------
3726
3727/** @} */
3728/** @} */
3729/** @} */
Definition bdlb_nullablevalue.h:262
Definition bslstl_string.h:1252
Definition bslstl_vector.h:1120
Definition bslma_allocator.h:545
Definition s_baltst_mysequencewithnillable.h:325
bdlb::NullableValue< bsl::vector< char > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:2673
MySequenceWithNillableBase64Binary(bslma::Allocator *basicAllocator=0)
MySequenceWithNillableBase64Binary(const MySequenceWithNillableBase64Binary &original, bslma::Allocator *basicAllocator=0)
~MySequenceWithNillableBase64Binary()
Destroy this object.
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:345
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:2680
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:337
friend bool operator==(const MySequenceWithNillableBase64Binary &lhs, const MySequenceWithNillableBase64Binary &rhs)
Definition s_baltst_mysequencewithnillable.h:504
MySequenceWithNillableBase64Binary & operator=(const MySequenceWithNillableBase64Binary &rhs)
Assign to this object the value of the specified rhs object.
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:333
friend bool operator!=(const MySequenceWithNillableBase64Binary &lhs, const MySequenceWithNillableBase64Binary &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:511
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:347
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:2642
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableBase64Binary &rhs)
Definition s_baltst_mysequencewithnillable.h:519
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:2693
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:2629
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:341
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
Definition s_baltst_mysequencewithnillable.h:541
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:553
friend bool operator!=(const MySequenceWithNillableHexBinary &lhs, const MySequenceWithNillableHexBinary &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:727
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:2751
MySequenceWithNillableHexBinary & operator=(const MySequenceWithNillableHexBinary &rhs)
Assign to this object the value of the specified rhs object.
friend bool operator==(const MySequenceWithNillableHexBinary &lhs, const MySequenceWithNillableHexBinary &rhs)
Definition s_baltst_mysequencewithnillable.h:720
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
MySequenceWithNillableHexBinary(bslma::Allocator *basicAllocator=0)
~MySequenceWithNillableHexBinary()
Destroy this object.
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:561
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:2802
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableHexBinary &rhs)
Definition s_baltst_mysequencewithnillable.h:735
bdlb::NullableValue< bsl::vector< char > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:2782
MySequenceWithNillableHexBinary(const MySequenceWithNillableHexBinary &original, bslma::Allocator *basicAllocator=0)
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:557
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:563
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:2789
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:2738
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:549
Definition s_baltst_mysequencewithnillable.h:757
MySequenceWithNillableIntArray & operator=(const MySequenceWithNillableIntArray &rhs)
Assign to this object the value of the specified rhs object.
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:2911
bsl::vector< bdlb::NullableValue< int > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:2891
friend bool operator==(const MySequenceWithNillableIntArray &lhs, const MySequenceWithNillableIntArray &rhs)
Definition s_baltst_mysequencewithnillable.h:936
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:779
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:777
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:765
~MySequenceWithNillableIntArray()
Destroy this object.
friend bool operator!=(const MySequenceWithNillableIntArray &lhs, const MySequenceWithNillableIntArray &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:943
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:773
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:769
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
MySequenceWithNillableIntArray(bslma::Allocator *basicAllocator=0)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableIntArray &rhs)
Definition s_baltst_mysequencewithnillable.h:951
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:2860
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:2898
MySequenceWithNillableIntArray(const MySequenceWithNillableIntArray &original, bslma::Allocator *basicAllocator=0)
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:2847
Definition s_baltst_mysequencewithnillable.h:1589
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3296
MySequenceWithNillableIntList(const MySequenceWithNillableIntList &original, bslma::Allocator *basicAllocator=0)
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
MySequenceWithNillableIntList & operator=(const MySequenceWithNillableIntList &rhs)
Assign to this object the value of the specified rhs object.
friend bool operator==(const MySequenceWithNillableIntList &lhs, const MySequenceWithNillableIntList &rhs)
Definition s_baltst_mysequencewithnillable.h:1768
friend bool operator!=(const MySequenceWithNillableIntList &lhs, const MySequenceWithNillableIntList &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:1775
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1597
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:1601
MySequenceWithNillableIntList(bslma::Allocator *basicAllocator=0)
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3347
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:1609
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1605
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:1611
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3283
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableIntList &rhs)
Definition s_baltst_mysequencewithnillable.h:1783
bsl::vector< bdlb::NullableValue< int > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:3327
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3334
~MySequenceWithNillableIntList()
Destroy this object.
Definition s_baltst_mysequencewithnillable.h:973
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableIntSequenceArraySequence &rhs)
Definition s_baltst_mysequencewithnillable.h:1129
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3007
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:981
int & attribute1()
Definition s_baltst_mysequencewithnillable.h:3000
friend bool operator!=(const MySequenceWithNillableIntSequenceArraySequence &lhs, const MySequenceWithNillableIntSequenceArraySequence &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:1120
friend bool operator==(const MySequenceWithNillableIntSequenceArraySequence &lhs, const MySequenceWithNillableIntSequenceArraySequence &rhs)
Definition s_baltst_mysequencewithnillable.h:1112
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:995
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:993
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:2956
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3020
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:985
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:989
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:2969
Definition s_baltst_mysequencewithnillable.h:1805
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3456
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3392
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3443
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1821
friend bool operator==(const MySequenceWithNillableIntSequenceArray &lhs, const MySequenceWithNillableIntSequenceArray &rhs)
Definition s_baltst_mysequencewithnillable.h:1985
MySequenceWithNillableIntSequenceArray(const MySequenceWithNillableIntSequenceArray &original, bslma::Allocator *basicAllocator=0)
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:1827
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableIntSequenceArray &rhs)
Definition s_baltst_mysequencewithnillable.h:2000
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3405
~MySequenceWithNillableIntSequenceArray()
Destroy this object.
MySequenceWithNillableIntSequenceArray & operator=(const MySequenceWithNillableIntSequenceArray &rhs)
Assign to this object the value of the specified rhs object.
MySequenceWithNillableIntSequenceArray(bslma::Allocator *basicAllocator=0)
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:1817
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:1825
bsl::vector< bdlb::NullableValue< MySequenceWithNillableIntSequenceArraySequence > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:3436
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1813
friend bool operator!=(const MySequenceWithNillableIntSequenceArray &lhs, const MySequenceWithNillableIntSequenceArray &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:1992
Definition s_baltst_mysequencewithnillable.h:1151
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:1171
friend bool operator==(const MySequenceWithNillableStringArray &lhs, const MySequenceWithNillableStringArray &rhs)
Definition s_baltst_mysequencewithnillable.h:1330
MySequenceWithNillableStringArray(const MySequenceWithNillableStringArray &original, bslma::Allocator *basicAllocator=0)
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3129
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:1173
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:1163
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1167
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
friend bool operator!=(const MySequenceWithNillableStringArray &lhs, const MySequenceWithNillableStringArray &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:1337
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3116
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
bsl::vector< bdlb::NullableValue< bsl::string > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:3109
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1159
~MySequenceWithNillableStringArray()
Destroy this object.
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3078
MySequenceWithNillableStringArray(bslma::Allocator *basicAllocator=0)
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3065
MySequenceWithNillableStringArray & operator=(const MySequenceWithNillableStringArray &rhs)
Assign to this object the value of the specified rhs object.
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableStringArray &rhs)
Definition s_baltst_mysequencewithnillable.h:1345
Definition s_baltst_mysequencewithnillable.h:2022
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:2030
MySequenceWithNillableStringList(const MySequenceWithNillableStringList &original, bslma::Allocator *basicAllocator=0)
friend bool operator!=(const MySequenceWithNillableStringList &lhs, const MySequenceWithNillableStringList &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:2208
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableStringList &rhs)
Definition s_baltst_mysequencewithnillable.h:2216
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:2038
MySequenceWithNillableStringList & operator=(const MySequenceWithNillableStringList &rhs)
Assign to this object the value of the specified rhs object.
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3552
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3514
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3501
bsl::vector< bdlb::NullableValue< bsl::string > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:3545
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:2042
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
friend bool operator==(const MySequenceWithNillableStringList &lhs, const MySequenceWithNillableStringList &rhs)
Definition s_baltst_mysequencewithnillable.h:2201
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
~MySequenceWithNillableStringList()
Destroy this object.
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3565
MySequenceWithNillableStringList(bslma::Allocator *basicAllocator=0)
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:2044
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:2034
Definition s_baltst_mysequencewithnillable.h:1367
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:1379
MySequenceWithNillableStringSequenceArraySequence(bslma::Allocator *basicAllocator=0)
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1383
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:1387
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableStringSequenceArraySequence &rhs)
Definition s_baltst_mysequencewithnillable.h:1567
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3225
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:1375
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3187
friend bool operator==(const MySequenceWithNillableStringSequenceArraySequence &lhs, const MySequenceWithNillableStringSequenceArraySequence &rhs)
Definition s_baltst_mysequencewithnillable.h:1550
friend bool operator!=(const MySequenceWithNillableStringSequenceArraySequence &lhs, const MySequenceWithNillableStringSequenceArraySequence &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:1558
MySequenceWithNillableStringSequenceArraySequence(const MySequenceWithNillableStringSequenceArraySequence &original, bslma::Allocator *basicAllocator=0)
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
MySequenceWithNillableStringSequenceArraySequence & operator=(const MySequenceWithNillableStringSequenceArraySequence &rhs)
Assign to this object the value of the specified rhs object.
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3238
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3174
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
bsl::string & attribute1()
Definition s_baltst_mysequencewithnillable.h:3218
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:1389
Definition s_baltst_mysequencewithnillable.h:2238
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillableStringSequenceArray &rhs)
Definition s_baltst_mysequencewithnillable.h:2435
bsl::vector< bdlb::NullableValue< MySequenceWithNillableStringSequenceArraySequence > > & attribute1()
Definition s_baltst_mysequencewithnillable.h:3654
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:2260
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:2250
~MySequenceWithNillableStringSequenceArray()
Destroy this object.
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:3674
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:2254
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
MySequenceWithNillableStringSequenceArray & operator=(const MySequenceWithNillableStringSequenceArray &rhs)
Assign to this object the value of the specified rhs object.
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:3610
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:2246
MySequenceWithNillableStringSequenceArray(bslma::Allocator *basicAllocator=0)
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:3623
friend bool operator==(const MySequenceWithNillableStringSequenceArray &lhs, const MySequenceWithNillableStringSequenceArray &rhs)
Definition s_baltst_mysequencewithnillable.h:2418
friend bool operator!=(const MySequenceWithNillableStringSequenceArray &lhs, const MySequenceWithNillableStringSequenceArray &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:2426
MySequenceWithNillableStringSequenceArray(const MySequenceWithNillableStringSequenceArray &original, bslma::Allocator *basicAllocator=0)
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:2258
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:3661
Definition s_baltst_mysequencewithnillable.h:87
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithnillable.h:2464
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithnillable.h:2487
@ ATTRIBUTE_ID_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:97
@ ATTRIBUTE_ID_MY_NILLABLE
Definition s_baltst_mysequencewithnillable.h:98
@ ATTRIBUTE_ID_ATTRIBUTE2
Definition s_baltst_mysequencewithnillable.h:99
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithnillable.h:103
int & attribute1()
Definition s_baltst_mysequencewithnillable.h:2524
bdlb::NullableValue< bsl::string > & myNillable()
Definition s_baltst_mysequencewithnillable.h:2530
friend bool operator!=(const MySequenceWithNillable &lhs, const MySequenceWithNillable &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithnillable.h:296
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
@ ATTRIBUTE_INDEX_ATTRIBUTE2
Definition s_baltst_mysequencewithnillable.h:109
@ ATTRIBUTE_INDEX_ATTRIBUTE1
Definition s_baltst_mysequencewithnillable.h:107
@ ATTRIBUTE_INDEX_MY_NILLABLE
Definition s_baltst_mysequencewithnillable.h:108
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithnillable.h:113
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithNillable &rhs)
Definition s_baltst_mysequencewithnillable.h:304
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithnillable.h:2543
MySequenceWithNillable(const MySequenceWithNillable &original, bslma::Allocator *basicAllocator=0)
bsl::string & attribute2()
Definition s_baltst_mysequencewithnillable.h:2536
friend bool operator==(const MySequenceWithNillable &lhs, const MySequenceWithNillable &rhs)
Definition s_baltst_mysequencewithnillable.h:287
~MySequenceWithNillable()
Destroy this object.
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithnillable.h:2566
MySequenceWithNillable & operator=(const MySequenceWithNillable &rhs)
Assign to this object the value of the specified rhs object.
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithnillable.h:115
MySequenceWithNillable(bslma::Allocator *basicAllocator=0)
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:301
#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:294
#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_typetraits.h:146