BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlar_anyref.h
Go to the documentation of this file.
1/// @file bdlar_anyref.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bdlar_anyref.h -*-C++-*-
8#ifndef INCLUDED_BDLAR_ANYREF
9#define INCLUDED_BDLAR_ANYREF
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bdlar_anyref bdlar_anyref
15/// @brief Provide ...
16/// @addtogroup bdl
17/// @{
18/// @addtogroup bdlar
19/// @{
20/// @addtogroup bdlar_anyref
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bdlar_anyref-purpose"> Purpose</a>
25/// * <a href="#bdlar_anyref-classes"> Classes </a>
26/// * <a href="#bdlar_anyref-description"> Description </a>
27///
28/// # Purpose {#bdlar_anyref-purpose}
29/// Provide ...
30///
31/// # Classes {#bdlar_anyref-classes}
32///
33/// - bdlar::AnyRef: ...
34/// - bdlar::AnyConstRef: ...
35///
36/// # Description {#bdlar_anyref-description}
37/// This component provides ...
38///
39/// @code
40/// +---------+
41/// | Any Ref | TYPE-ERASED UNIVERSAL REF
42/// +---------+
43/// / | \.
44/// v v v
45/// +----------+ +---------+ +----------+
46/// | Cat1 Ref | | Dyn Ref | | Cat2 Ref | VALUE REFS
47/// +----------+ +---------+ +----------+
48/// | / \ |
49/// v v v v
50/// +----------+ +----------+
51/// | Cat1 Obj | | Cat2 Obj | VALUES (OBJECTS)
52/// +----------+ +----------+
53/// @endcode
54/// @}
55/** @} */
56/** @} */
57
58/** @addtogroup bdl
59 * @{
60 */
61/** @addtogroup bdlar
62 * @{
63 */
64/** @addtogroup bdlar_anyref
65 * @{
66 */
67
68#include <bdlar_anyrefdata.h>
69#include <bdlar_anyvtable.h>
70
71#include <bdlat_typecategory.h>
73
74
75namespace bdlar {
76
77 // ============
78 // class AnyRef
79 // ============
80
81/// A type-erased universal wrapper for reference to any type category with
82/// read/write access.
83///
84/// See @ref bdlar_anyref
85class AnyRef {
86 // DATA
87 void *d_object_p;
88 AnyVtable d_vtable;
90
91 public:
92 // CREATORS
93
94 /// Create an `AnyRef` object.
95 /// \pre The behaviour is undefined unless
96 /// `objectAddress` and `vtable` point to the valid objects.
97 AnyRef(void *objectAddress, const SimpleTypeVtable *vtable);
98
99 /// Create an `AnyRef` object.
100 /// \pre The behaviour is undefined unless
101 /// `objectAddress` and `vtable` point to the valid objects.
102 AnyRef(void *objectAddress, const EnumVtable *vtable);
103
104 /// Create an `AnyRef` object.
105 /// \pre The behaviour is undefined unless
106 /// `objectAddress` and `vtable` point to the valid objects.
107 AnyRef(void *objectAddress, const NullableValueVtable *vtable);
108
109 /// Create an `AnyRef` object.
110 /// \pre The behaviour is undefined unless
111 /// `objectAddress` and `vtable` point to the valid objects.
112 AnyRef(void *objectAddress, const ArrayVtable *vtable);
113
114 /// Create an `AnyRef` object.
115 /// \pre The behaviour is undefined unless
116 /// `objectAddress` and `vtable` point to the valid objects.
117 AnyRef(void *objectAddress, const SequenceVtable *vtable);
118
119 /// Create an `AnyRef` object.
120 /// \pre The behaviour is undefined unless
121 /// `objectAddress` and `vtable` point to the valid objects.
122 AnyRef(void *objectAddress, const ChoiceVtable *vtable);
123
124 /// Create an `AnyRef` object.
125 /// \pre The behaviour is undefined unless
126 /// `objectAddress` and `vtable` point to the valid objects.
127 AnyRef(void *objectAddress, const CustomizedTypeVtable *vtable);
128
129 /// Create an `AnyRef` object.
130 /// \pre The behaviour is undefined unless
131 /// `objectAddress` and `vtable` point to the valid objects.
132 AnyRef(void *objectAddress, const DynamicTypeVtable *vtable);
133
134 /// Create an `AnyRef` object.
135 AnyRef(void *objectAddress,
136 AnyVtable vtable,
138
139 /// Create an `AnyRef` object.
140 AnyRef(const AnyRefData& data); // IMPLICIT
141
142 // MANIPULATORS
143
144 /// Reset the referred object to the default value.
145 void reset() const;
146
147 // ACCESSORS
148
149 /// Return a pointer to the vtable.
150 /// \pre The behavior is undefined unless
151 /// `typeCategory() == bdlat_TypeCategory::e_ARRAY_CATEGORY`.
152 const ArrayVtable *arrayVtable() const;
153
154 /// Return a pointer to the vtable.
155 /// \pre The behavior is undefined unless
156 /// `typeCategory() == bdlat_TypeCategory::e_CHOICE_CATEGORY`.
157 const ChoiceVtable *choiceVtable() const;
158
159 /// Return a pointer to the vtable.
160 /// \pre The behavior is undefined unless
161 /// `typeCategory() == bdlat_TypeCategory::e_CUSTOMIZED_TYPE_CATEGORY`.
163
164 /// Return a pointer to the vtable.
165 /// \pre The behavior is undefined unless
166 /// `typeCategory() == bdlat_TypeCategory::e_DYNAMIC_CATEGORY`.
168
169 /// Return a pointer to the vtable.
170 /// \pre The behavior is undefined unless
171 /// `typeCategory() == bdlat_TypeCategory::e_ENUMERATION_CATEGORY`.
172 const EnumVtable *enumVtable() const;
173
174 /// Return a pointer to the vtable.
175 /// \pre The behavior is undefined unless
176 /// `typeCategory() == bdlat_TypeCategory::e_NULLABLE_VALUE_CATEGORY`.
178
179 /// Return a pointer to the vtable.
180 /// \pre The behavior is undefined unless
181 /// `typeCategory() == bdlat_TypeCategory::e_SEQUENCE_CATEGORY`.
182 const SequenceVtable *sequenceVtable() const;
183
184 /// Return a pointer to the vtable.
185 /// \pre The behavior is undefined unless
186 /// `typeCategory() == bdlat_TypeCategory::e_SIMPLE_CATEGORY`.
187 const SimpleTypeVtable *simpleTypeVtable() const;
188
189 /// Return a pointer to the wrapped object.
190 void *objectAddress() const;
191
192 /// Return type category of the referred object.
194};
195
196// FREE FUNCTIONS
197// Customization-point functions
198
199template <class t_MANIPULATOR>
201 t_MANIPULATOR& manipulator);
202template <class t_MANIPULATOR>
204 t_MANIPULATOR& manipulator);
205template <class t_MANIPULATOR>
207 t_MANIPULATOR& manipulator);
208template <class t_MANIPULATOR>
210 t_MANIPULATOR& manipulator);
211template <class t_MANIPULATOR>
213 t_MANIPULATOR& manipulator);
214template <class t_MANIPULATOR>
216 t_MANIPULATOR& manipulator);
217template <class t_MANIPULATOR>
219 t_MANIPULATOR& manipulator);
220
221template <class t_ACCESSOR>
222int bdlat_typeCategoryAccessArray(const AnyRef& any, t_ACCESSOR& accessor);
223template <class t_ACCESSOR>
224int bdlat_typeCategoryAccessChoice(const AnyRef& any, t_ACCESSOR& accessor);
225template <class t_ACCESSOR>
227 t_ACCESSOR& accessor);
228template <class t_ACCESSOR>
230 t_ACCESSOR& accessor);
231template <class t_ACCESSOR>
233 t_ACCESSOR& accessor);
234template <class t_ACCESSOR>
235int bdlat_typeCategoryAccessSequence(const AnyRef& any, t_ACCESSOR& accessor);
236template <class t_ACCESSOR>
237int bdlat_typeCategoryAccessSimple(const AnyRef& any, t_ACCESSOR& accessor);
238
239 // =================
240 // class AnyConstRef
241 // =================
242
243/// A type-erased universal wrapper for reference to any type category with
244/// read-only access.
245///
246/// See @ref bdlar_anyref
248 // DATA
249 const void *d_object_p;
250 AnyConstVtable d_vtable;
251 bdlat_TypeCategory::Value d_category;
252
253 public:
254 // CREATORS
255
256 /// Create an `AnyConstRef` object.
257 /// \pre The behaviour is undefined unless
258 /// `objectAddress` and `vtable` point to the valid objects.
259 AnyConstRef(const void *objectAddress,
260 const SimpleTypeConstVtable *vtable);
261
262 /// Create an `AnyConstRef` object.
263 /// \pre The behaviour is undefined unless
264 /// `objectAddress` and `vtable` point to the valid objects.
265 AnyConstRef(const void *objectAddress, const EnumConstVtable *vtable);
266
267 /// Create an `AnyConstRef` object.
268 /// \pre The behaviour is undefined unless
269 /// `objectAddress` and `vtable` point to the valid objects.
270 AnyConstRef(const void *objectAddress,
271 const NullableValueConstVtable *vtable);
272
273 /// Create an `AnyConstRef` object.
274 /// \pre The behaviour is undefined unless
275 /// `objectAddress` and `vtable` point to the valid objects.
276 AnyConstRef(const void *objectAddress, const ArrayConstVtable *vtable);
277
278 /// Create an `AnyConstRef` object.
279 /// \pre The behaviour is undefined unless
280 /// `objectAddress` and `vtable` point to the valid objects.
281 AnyConstRef(const void *objectAddress, const SequenceConstVtable *vtable);
282
283 /// Create an `AnyConstRef` object.
284 /// \pre The behaviour is undefined unless
285 /// `objectAddress` and `vtable` point to the valid objects.
286 AnyConstRef(const void *objectAddress, const ChoiceConstVtable *vtable);
287
288 /// Create an `AnyConstRef` object.
289 /// \pre The behaviour is undefined unless
290 /// `objectAddress` and `vtable` point to the valid objects.
291 AnyConstRef(const void *objectAddress,
292 const CustomizedTypeConstVtable *vtable);
293
294 /// Create an `AnyConstRef` object.
295 /// \pre The behaviour is undefined unless
296 /// `objectAddress` and `vtable` point to the valid objects.
297 AnyConstRef(const void *objectAddress,
298 const DynamicTypeConstVtable *vtable);
299
300 /// Create an `AnyConstRef` object.
301 AnyConstRef(const void *objectAddress,
302 AnyConstVtable vtable,
304
305 /// Create an `AnyConstRef` object.
306 AnyConstRef(const AnyConstRefData& data); // IMPLICIT
307
308 /// Create an `AnyConstRef` object that wraps the same object as the
309 /// specified `object`.
310 AnyConstRef(const AnyRef& object); // IMPLICIT
311
312 // ACCESSORS
313
314 /// Return a pointer to the vtable.
315 /// \pre The behavior is undefined unless
316 /// `typeCategory() == bdlat_TypeCategory::e_ARRAY_CATEGORY`.
317 const ArrayConstVtable *arrayVtable() const;
318
319 /// Return a pointer to the vtable.
320 /// \pre The behavior is undefined unless
321 /// `typeCategory() == bdlat_TypeCategory::e_CHOICE_CATEGORY`.
322 const ChoiceConstVtable *choiceVtable() const;
323
324 /// Return a pointer to the vtable.
325 /// \pre The behavior is undefined unless
326 /// `typeCategory() == bdlat_TypeCategory::e_CUSTOMIZED_TYPE_CATEGORY`.
328
329 /// Return a pointer to the vtable.
330 /// \pre The behavior is undefined unless
331 /// `typeCategory() == bdlat_TypeCategory::e_DYNAMIC_CATEGORY`.
333
334 /// Return a pointer to the vtable.
335 /// \pre The behavior is undefined unless
336 /// `typeCategory() == bdlat_TypeCategory::e_ENUMERATION_CATEGORY`.
337 const EnumConstVtable *enumVtable() const;
338
339 /// Return a pointer to the vtable.
340 /// \pre The behavior is undefined unless
341 /// `typeCategory() == bdlat_TypeCategory::e_NULLABLE_VALUE_CATEGORY`.
343
344 /// Return a pointer to the vtable.
345 /// \pre The behavior is undefined unless
346 /// `typeCategory() == bdlat_TypeCategory::e_SEQUENCE_CATEGORY`.
347 const SequenceConstVtable *sequenceVtable() const;
348
349 /// Return a pointer to the vtable.
350 /// \pre The behavior is undefined unless
351 /// `typeCategory() == bdlat_TypeCategory::e_SIMPLE_CATEGORY`.
353
354 /// Return a pointer to the wrapped object.
355 const void *objectAddress() const;
356
357 /// Return type category of the referred object.
359
360 /// Return the `bdlat_TypeName::xsdName` value for the underlying object.
361 const char *xsdName(int format) const;
362};
363
364// FREE FUNCTIONS
365// Customization-point functions
366
367template <class t_ACCESSOR>
369 t_ACCESSOR& accessor);
370template <class t_ACCESSOR>
372 t_ACCESSOR& accessor);
373template <class t_ACCESSOR>
375 t_ACCESSOR& accessor);
376template <class t_ACCESSOR>
378 t_ACCESSOR& accessor);
379template <class t_ACCESSOR>
381 t_ACCESSOR& accessor);
382template <class t_ACCESSOR>
384 t_ACCESSOR& accessor);
385template <class t_ACCESSOR>
387 t_ACCESSOR& accessor);
388
389// ============================================================================
390// INLINE DEFINITIONS
391// ============================================================================
392
393 // ------------
394 // class AnyRef
395 // ------------
396
397// CREATORS
398inline
399AnyRef::AnyRef(void *objectAddress, const SimpleTypeVtable *vtable)
400: d_object_p(objectAddress)
401, d_vtable(vtable)
402, d_category(bdlat_TypeCategory::e_SIMPLE_CATEGORY)
403{
404}
405
406inline
407AnyRef::AnyRef(void *objectAddress, const EnumVtable *vtable)
408: d_object_p(objectAddress)
409, d_vtable(vtable)
410, d_category(bdlat_TypeCategory::e_ENUMERATION_CATEGORY)
411{
412}
413
414inline
415AnyRef::AnyRef(void *objectAddress, const NullableValueVtable *vtable)
416: d_object_p(objectAddress)
417, d_vtable(vtable)
418, d_category(bdlat_TypeCategory::e_NULLABLE_VALUE_CATEGORY)
419{
420}
421
422inline
423AnyRef::AnyRef(void *objectAddress, const ArrayVtable *vtable)
424: d_object_p(objectAddress)
425, d_vtable(vtable)
426, d_category(bdlat_TypeCategory::e_ARRAY_CATEGORY)
427{
428}
429
430inline
431AnyRef::AnyRef(void *objectAddress, const SequenceVtable *vtable)
432: d_object_p(objectAddress)
433, d_vtable(vtable)
434, d_category(bdlat_TypeCategory::e_SEQUENCE_CATEGORY)
435{
436}
437
438inline
439AnyRef::AnyRef(void *objectAddress, const ChoiceVtable *vtable)
440: d_object_p(objectAddress)
441, d_vtable(vtable)
442, d_category(bdlat_TypeCategory::e_CHOICE_CATEGORY)
443{
444}
445
446inline
447AnyRef::AnyRef(void *objectAddress, const CustomizedTypeVtable *vtable)
448: d_object_p(objectAddress)
449, d_vtable(vtable)
450, d_category(bdlat_TypeCategory::e_CUSTOMIZED_TYPE_CATEGORY)
451{
452}
453
454inline
455AnyRef::AnyRef(void *objectAddress, const DynamicTypeVtable *vtable)
456: d_object_p(objectAddress)
457, d_vtable(vtable)
458, d_category(bdlat_TypeCategory::e_DYNAMIC_CATEGORY)
459{
460}
461
462inline
463AnyRef::AnyRef(void *objectAddress,
464 AnyVtable vtable,
466: d_object_p(objectAddress)
467, d_vtable(vtable)
468, d_category(category)
469{
470}
471
472inline
474: d_object_p(data.d_object_p)
475, d_vtable(data.d_vtable)
476, d_category(data.d_category)
477{
478}
479
480// ACCESSORS
481inline
483{
484 return d_vtable.d_array_p;
485}
486
487inline
489{
490 return d_vtable.d_choice_p;
491}
492
493inline
495{
496 return d_vtable.d_customized_p;
497}
498
499inline
501{
502 return d_vtable.d_dynamic_p;
503}
504
505inline
507{
508 return d_vtable.d_enum_p;
509}
510
511inline
513{
514 return d_vtable.d_nullable_p;
515}
516
517inline
519{
520 return d_vtable.d_sequence_p;
521}
522
523inline
525{
526 return d_vtable.d_simple_p;
527}
528
529inline
531{
532 return d_object_p;
533}
534
535inline
537{
538 return d_category;
539}
540
541// FREE FUNCTIONS
542// Customization-point functions
543inline
548
549inline
551{
552 ref->reset();
553}
554
555// The others are defined in bdlar_anymanipulators.h
556
557 // -----------------
558 // class AnyConstRef
559 // -----------------
560
561// CREATORS
562inline
563AnyConstRef::AnyConstRef(const void *objectAddress,
564 const SimpleTypeConstVtable *vtable)
565: d_object_p(objectAddress)
566, d_vtable(vtable)
567, d_category(bdlat_TypeCategory::e_SIMPLE_CATEGORY)
568{
569}
570
571inline
572AnyConstRef::AnyConstRef(const void *objectAddress,
573 const EnumConstVtable *vtable)
574: d_object_p(objectAddress)
575, d_vtable(vtable)
576, d_category(bdlat_TypeCategory::e_ENUMERATION_CATEGORY)
577{
578}
579
580inline
581AnyConstRef::AnyConstRef(const void *objectAddress,
582 const NullableValueConstVtable *vtable)
583: d_object_p(objectAddress)
584, d_vtable(vtable)
585, d_category(bdlat_TypeCategory::e_NULLABLE_VALUE_CATEGORY)
586{
587}
588
589inline
590AnyConstRef::AnyConstRef(const void *objectAddress,
591 const ArrayConstVtable *vtable)
592: d_object_p(objectAddress)
593, d_vtable(vtable)
594, d_category(bdlat_TypeCategory::e_ARRAY_CATEGORY)
595{
596}
597
598inline
599AnyConstRef::AnyConstRef(const void *objectAddress,
600 const SequenceConstVtable *vtable)
601: d_object_p(objectAddress)
602, d_vtable(vtable)
603, d_category(bdlat_TypeCategory::e_SEQUENCE_CATEGORY)
604{
605}
606
607inline
608AnyConstRef::AnyConstRef(const void *objectAddress,
609 const ChoiceConstVtable *vtable)
610: d_object_p(objectAddress)
611, d_vtable(vtable)
612, d_category(bdlat_TypeCategory::e_CHOICE_CATEGORY)
613{
614}
615
616inline
617AnyConstRef::AnyConstRef(const void *objectAddress,
618 const DynamicTypeConstVtable *vtable)
619: d_object_p(objectAddress)
620, d_vtable(vtable)
621, d_category(bdlat_TypeCategory::e_DYNAMIC_CATEGORY)
622{
623}
624
625inline
626AnyConstRef::AnyConstRef(const void *objectAddress,
627 const CustomizedTypeConstVtable *vtable)
628: d_object_p(objectAddress)
629, d_vtable(vtable)
630, d_category(bdlat_TypeCategory::e_CUSTOMIZED_TYPE_CATEGORY)
631{
632}
633
634inline
635AnyConstRef::AnyConstRef(const void *objectAddress,
636 AnyConstVtable vtable,
638: d_object_p(objectAddress)
639, d_vtable(vtable)
640, d_category(category)
641{
642}
643
644inline
646: d_object_p(data.d_object_p)
647, d_vtable(data.d_vtable)
648, d_category(data.d_category)
649{
650}
651
652// ACCESSORS
653inline
655{
656 return d_vtable.d_array_p;
657}
658
659inline
661{
662 return d_vtable.d_choice_p;
663}
664
665inline
670
671inline
673{
674 return d_vtable.d_dynamic_p;
675}
676
677inline
679{
680 return d_vtable.d_enum_p;
681}
682
683inline
685{
686 return d_vtable.d_nullable_p;
687}
688
689inline
691{
692 return d_vtable.d_sequence_p;
693}
694
695inline
697{
698 return d_vtable.d_simple_p;
699}
700
701inline
702const void *AnyConstRef::objectAddress() const
703{
704 return d_object_p;
705}
706
707inline
709{
710 return d_category;
711}
712
713// FREE FUNCTIONS
714// Customization-point functions
715inline
716const char *bdlat_TypeName_xsdName(const AnyConstRef& ref, int format)
717{
718 return ref.xsdName(format);
719}
720
721inline
726
727// The others are defined in bdlar_anymanipulators.h
728
729} // close package namespace
730
731template <>
734
735template <>
738
739
740
741#endif
742
743// ----------------------------------------------------------------------------
744// Copyright 2024 Bloomberg Finance L.P.
745//
746// Licensed under the Apache License, Version 2.0 (the "License");
747// you may not use this file except in compliance with the License.
748// You may obtain a copy of the License at
749//
750// http://www.apache.org/licenses/LICENSE-2.0
751//
752// Unless required by applicable law or agreed to in writing, software
753// distributed under the License is distributed on an "AS IS" BASIS,
754// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
755// See the License for the specific language governing permissions and
756// limitations under the License.
757// ----------------------------- END-OF-FILE ----------------------------------
758
759/** @} */
760/** @} */
761/** @} */
Definition bdlar_anyref.h:247
const EnumConstVtable * enumVtable() const
Definition bdlar_anyref.h:678
const CustomizedTypeConstVtable * customizedTypeVtable() const
Definition bdlar_anyref.h:666
AnyConstRef(const void *objectAddress, const SimpleTypeConstVtable *vtable)
Definition bdlar_anyref.h:563
const ChoiceConstVtable * choiceVtable() const
Definition bdlar_anyref.h:660
const void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_anyref.h:702
const SimpleTypeConstVtable * simpleTypeVtable() const
Definition bdlar_anyref.h:696
const DynamicTypeConstVtable * dynamicTypeVtable() const
Definition bdlar_anyref.h:672
const NullableValueConstVtable * nullableValueVtable() const
Definition bdlar_anyref.h:684
bdlat_TypeCategory::Value typeCategory() const
Return type category of the referred object.
Definition bdlar_anyref.h:708
const SequenceConstVtable * sequenceVtable() const
Definition bdlar_anyref.h:690
const char * xsdName(int format) const
Return the bdlat_TypeName::xsdName value for the underlying object.
const ArrayConstVtable * arrayVtable() const
Definition bdlar_anyref.h:654
AnyConstRef(const AnyRef &object)
Definition bdlar_anyref.h:85
const NullableValueVtable * nullableValueVtable() const
Definition bdlar_anyref.h:512
void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_anyref.h:530
const SequenceVtable * sequenceVtable() const
Definition bdlar_anyref.h:518
bdlat_TypeCategory::Value typeCategory() const
Return type category of the referred object.
Definition bdlar_anyref.h:536
const SimpleTypeVtable * simpleTypeVtable() const
Definition bdlar_anyref.h:524
const ArrayVtable * arrayVtable() const
Definition bdlar_anyref.h:482
const CustomizedTypeVtable * customizedTypeVtable() const
Definition bdlar_anyref.h:494
const ChoiceVtable * choiceVtable() const
Definition bdlar_anyref.h:488
const EnumVtable * enumVtable() const
Definition bdlar_anyref.h:506
void reset() const
Reset the referred object to the default value.
AnyRef(void *objectAddress, const SimpleTypeVtable *vtable)
Definition bdlar_anyref.h:399
const DynamicTypeVtable * dynamicTypeVtable() const
Definition bdlar_anyref.h:500
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlar_accessorref.h:59
int bdlat_typeCategoryManipulateChoice(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:89
int bdlat_typeCategoryManipulateArray(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:77
int bdlat_typeCategoryAccessCustomizedType(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:186
int bdlat_typeCategoryAccessSimple(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:235
int bdlat_typeCategoryAccessArray(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:164
int bdlat_typeCategoryAccessChoice(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:175
const char * bdlat_TypeName_xsdName(const AnyConstRef &ref, int format)
Definition bdlar_anyref.h:716
bdlat_TypeCategory::Value bdlat_typeCategorySelect(const AnyRef &any)
Definition bdlar_anyref.h:544
int bdlat_typeCategoryManipulateCustomizedType(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:100
void bdlat_valueTypeReset(AnyRef *ref)
Definition bdlar_anyref.h:550
int bdlat_typeCategoryManipulateEnumeration(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:115
int bdlat_typeCategoryAccessNullableValue(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:211
int bdlat_typeCategoryManipulateSimple(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:152
int bdlat_typeCategoryManipulateNullableValue(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:127
int bdlat_typeCategoryManipulateSequence(AnyRef *any, t_MANIPULATOR &manipulator)
Definition bdlar_anymanipulators.h:140
int bdlat_typeCategoryAccessSequence(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:224
int bdlat_typeCategoryAccessEnumeration(const AnyRef &any, t_ACCESSOR &accessor)
Definition bdlar_anymanipulators.h:199
Definition bdlar_anyrefdata.h:75
Definition bdlar_anyrefdata.h:64
Definition bdlar_arrayvtable.h:71
Definition bdlar_arrayvtable.h:96
Definition bdlar_choicevtable.h:69
Definition bdlar_choicevtable.h:97
Definition bdlar_customizedtypevtable.h:75
Definition bdlar_customizedtypevtable.h:96
Definition bdlar_dynamictypevtable.h:69
Definition bdlar_dynamictypevtable.h:90
Definition bdlar_enumvtable.h:67
Definition bdlar_enumvtable.h:92
Definition bdlar_nullablevaluevtable.h:71
Definition bdlar_nullablevaluevtable.h:94
Definition bdlar_sequencevtable.h:69
Definition bdlar_sequencevtable.h:105
Definition bdlar_simpletypevtable.h:69
Definition bdlar_simpletypevtable.h:88
Definition bdlat_typecategory.h:1022
Definition bdlat_typecategory.h:1033
Value
Definition bdlat_typecategory.h:1046
Definition bdlar_anyvtable.h:106
const DynamicTypeConstVtable * d_dynamic_p
Definition bdlar_anyvtable.h:114
const CustomizedTypeConstVtable * d_customized_p
Definition bdlar_anyvtable.h:113
const NullableValueConstVtable * d_nullable_p
Definition bdlar_anyvtable.h:109
const ArrayConstVtable * d_array_p
Definition bdlar_anyvtable.h:110
const SimpleTypeConstVtable * d_simple_p
Definition bdlar_anyvtable.h:107
const ChoiceConstVtable * d_choice_p
Definition bdlar_anyvtable.h:112
const SequenceConstVtable * d_sequence_p
Definition bdlar_anyvtable.h:111
const EnumConstVtable * d_enum_p
Definition bdlar_anyvtable.h:108
Definition bdlar_anyvtable.h:80
const ChoiceVtable * d_choice_p
Definition bdlar_anyvtable.h:86
const NullableValueVtable * d_nullable_p
Definition bdlar_anyvtable.h:83
const CustomizedTypeVtable * d_customized_p
Definition bdlar_anyvtable.h:87
const DynamicTypeVtable * d_dynamic_p
Definition bdlar_anyvtable.h:88
const ArrayVtable * d_array_p
Definition bdlar_anyvtable.h:84
const EnumVtable * d_enum_p
Definition bdlar_anyvtable.h:82
const SequenceVtable * d_sequence_p
Definition bdlar_anyvtable.h:85
const SimpleTypeVtable * d_simple_p
Definition bdlar_anyvtable.h:81