8#ifndef INCLUDED_BDLAR_NULLABLEVALUEREF
9#define INCLUDED_BDLAR_NULLABLEVALUEREF
53#include <bdlar_nullablevaluevtable.h>
85 template <
class t_NULLABLE>
109 template <
class t_MANIPULATOR>
126 template <
class t_ACCESSOR>
149 const void *d_object_p;
160 template <
class t_NULLABLE>
162 const t_NULLABLE& nullable,
187 template <
class t_ACCESSOR>
204 const char *
xsdName(
int format)
const;
216template <
class t_NULLABLE>
221: d_object_p(&nullable)
229: d_object_p(objectAddress)
241template <
class t_MANIPULATOR>
246 manipulatorRef(manipulator);
257template <
class t_ACCESSOR>
262 accessorRef(accessor);
299template <
class t_MANIPULATOR>
302 t_MANIPULATOR& manipulator)
304 return ref->manipulateValue(manipulator);
307template <
class t_ACCESSOR>
310 t_ACCESSOR& accessor)
312 return ref.accessValue(accessor);
332template <
class t_NULLABLE>
335 const t_NULLABLE& nullable,
338: d_object_p(&nullable)
345 const void *objectAddress,
347: d_object_p(objectAddress)
354: d_object_p(object.objectAddress())
355, d_vtable_p(&object.vtable()->d_const)
360template <
class t_ACCESSOR>
365 accessorRef(accessor);
402template <
class t_ACCESSOR>
405 t_ACCESSOR& accessor)
407 return ref.accessValue(accessor);
420 return ref.xsdName(format);
Definition bdlar_anyref.h:247
Definition bdlar_anyref.h:85
Definition bdlar_dynamictyperef.h:128
Definition bdlar_nullablevalueref.h:147
bdlat_TypeCategory::Value valueCategory() const
Return the value type category.
Definition bdlar_nullablevalueref.h:388
const NullableValueConstVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_nullablevalueref.h:370
int accessValue(t_ACCESSOR &accessor) const
Definition bdlar_nullablevalueref.h:362
bdlat_TypeCategory::NullableValue CategoryTag
Definition bdlar_nullablevalueref.h:154
NullableValueConstRef(const t_NULLABLE &nullable, typename bsl::enable_if< IsNullable< t_NULLABLE >::value >::type *=0)
Definition bdlar_nullablevalueref.h:334
bool isNull() const
Definition bdlar_nullablevalueref.h:376
const void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_nullablevalueref.h:382
const char * xsdName(int format) const
Return the bdlat_TypeName::xsdName value for the underlying object.
Definition bdlar_nullablevalueref.h:394
Definition bdlar_nullablevalueref.h:72
NullableValueRef(t_NULLABLE &nullable, typename bsl::enable_if< IsNullable< t_NULLABLE >::value >::type *=0)
Definition bdlar_nullablevalueref.h:218
int accessValue(t_ACCESSOR &accessor) const
Definition bdlar_nullablevalueref.h:259
bool isNull() const
Definition bdlar_nullablevalueref.h:273
int manipulateValue(t_MANIPULATOR &manipulator) const
Definition bdlar_nullablevalueref.h:243
void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_nullablevalueref.h:279
bdlat_TypeCategory::Value valueCategory() const
Return the value type category.
Definition bdlar_nullablevalueref.h:285
void reset() const
Reset the referred object to the default value.
Definition bdlar_nullablevalueref.h:251
void makeValue() const
Assign to the referred object the default value for the contained type.
Definition bdlar_nullablevalueref.h:236
bdlat_TypeCategory::NullableValue CategoryTag
Definition bdlar_nullablevalueref.h:79
const NullableValueVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_nullablevalueref.h:267
Definition bdlar_nullablevaluevtableutil.h:66
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlar_accessorref.h:59
bool bdlat_nullableValueIsNull(const NullableValueRef &ref)
Definition bdlar_nullablevalueref.h:316
int bdlat_nullableValueManipulateValue(NullableValueRef *ref, t_MANIPULATOR &manipulator)
Definition bdlar_nullablevalueref.h:301
const char * bdlat_TypeName_xsdName(const AnyConstRef &ref, int format)
Definition bdlar_anyref.h:716
void bdlat_valueTypeReset(AnyRef *ref)
Definition bdlar_anyref.h:550
int bdlat_nullableValueAccessValue(const NullableValueRef &ref, t_ACCESSOR &accessor)
Definition bdlar_nullablevalueref.h:309
void bdlat_nullableValueMakeValue(NullableValueRef *ref)
Definition bdlar_nullablevalueref.h:294
Definition bdlar_nullablevalueref.h:425
Definition bdlar_typecategory.h:114
Definition bdlar_nullablevaluevtable.h:71
AccessValue * d_accessValue_fp
Definition bdlar_nullablevaluevtable.h:80
IsNull * d_isNull_fp
Definition bdlar_nullablevaluevtable.h:81
XsdName * d_xsdName_fp
Definition bdlar_nullablevaluevtable.h:82
ValueCategory * d_valueCategory_fp
Definition bdlar_nullablevaluevtable.h:79
Definition bdlar_nullablevaluevtable.h:94
MakeValue * d_makeValue_fp
Definition bdlar_nullablevaluevtable.h:103
Reset * d_reset_fp
Definition bdlar_nullablevaluevtable.h:104
NullableValueConstVtable d_const
Definition bdlar_nullablevaluevtable.h:101
ManipulateValue * d_manipulateValue_fp
Definition bdlar_nullablevaluevtable.h:102
Definition bdlat_nullablevaluefunctions.h:649
bdlar::AnyConstRef Type
Definition bdlar_nullablevalueref.h:442
bdlar::AnyRef Type
Definition bdlar_nullablevalueref.h:437
Definition bdlat_nullablevaluefunctions.h:656
Definition bdlat_typecategory.h:1041
Value
Definition bdlat_typecategory.h:1046
Definition bslmf_enableif.h:530