8#ifndef INCLUDED_BDLAR_ARRAYREF
9#define INCLUDED_BDLAR_ARRAYREF
53#include <bdlar_arrayvtable.h>
59#include <bsl_type_traits.h>
81 template <
class t_ARRAY>
102 template <
class t_MANIPULATOR>
114 void resize(
int newSize)
const;
127 template <
class t_ACCESSOR>
140 bsl::size_t
size()
const;
149 const void *d_object_p;
157 template <
class t_ARRAY>
182 template <
class t_ACCESSOR>
195 bsl::size_t
size()
const;
198 const char *
xsdName(
int format)
const;
210template <
class t_ARRAY>
222: d_object_p(objectAddress)
228template <
class t_MANIPULATOR>
233 manipulatorRef(manipulator);
248 return d_vtable_p->
d_resize_fp(d_object_p, newSize);
252template <
class t_ACCESSOR>
257 accessorRef(accessor);
290template <
class t_MANIPULATOR>
293 t_MANIPULATOR& manipulator,
302 return array->
resize(newSize);
305template <
class t_ACCESSOR>
308 t_ACCESSOR& accessor,
331template <
class t_ARRAY>
344: d_object_p(objectAddress)
351: d_object_p(object.objectAddress())
352, d_vtable_p(&object.vtable()->d_const)
357template <
class t_ACCESSOR>
362 accessorRef(accessor);
387 return d_vtable_p->
d_size_fp(d_object_p);
399template <
class t_ACCESSOR>
402 t_ACCESSOR& accessor,
417 return ref.xsdName(format);
Definition bdlar_anyref.h:247
Definition bdlar_anyref.h:85
Definition bdlar_arrayref.h:147
bsl::size_t size() const
Return the number of elements in the wrapped array.
Definition bdlar_arrayref.h:385
ArrayConstRef(const t_ARRAY &array, typename bsl::enable_if< IsArray< t_ARRAY >::value >::type *=0)
Definition bdlar_arrayref.h:333
bdlat_TypeCategory::Value elementCategory() const
Return the element type category of the wrapped array.
Definition bdlar_arrayref.h:367
const ArrayConstVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_arrayref.h:373
const void * objectAddress() const
Return a pointer to the wrapped array.
Definition bdlar_arrayref.h:379
const char * xsdName(int format) const
Return the bdlat_TypeName::xsdName value for the underlying object.
Definition bdlar_arrayref.h:391
int accessElement(t_ACCESSOR &accessor, int index) const
Definition bdlar_arrayref.h:359
Definition bdlar_arrayref.h:72
void reset() const
Reset the referred object to the default value.
Definition bdlar_arrayref.h:240
void * objectAddress() const
Return a pointer to the wrapped array.
Definition bdlar_arrayref.h:276
void resize(int newSize) const
Definition bdlar_arrayref.h:246
int manipulateElement(t_MANIPULATOR &manipulator, int index) const
Definition bdlar_arrayref.h:230
bsl::size_t size() const
Return the number of elements in the wrapped array.
Definition bdlar_arrayref.h:282
const ArrayVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_arrayref.h:270
bdlat_TypeCategory::Value elementCategory() const
Return the element type category of the wrapped array.
Definition bdlar_arrayref.h:264
ArrayRef(t_ARRAY &array, typename bsl::enable_if< IsArray< t_ARRAY >::value >::type *=0)
Create ArrayRef object that type erases the supplied array object.
Definition bdlar_arrayref.h:212
int accessElement(t_ACCESSOR &accessor, int index) const
Definition bdlar_arrayref.h:254
Definition bdlar_arrayvtableutil.h:66
Definition bdlar_dynamictyperef.h:128
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlar_accessorref.h:59
void bdlat_arrayResize(ArrayRef *array, int newSize)
Definition bdlar_arrayref.h:300
int bdlat_arrayAccessElement(const ArrayRef &array, t_ACCESSOR &accessor, int index)
Definition bdlar_arrayref.h:307
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_arrayManipulateElement(ArrayRef *array, t_MANIPULATOR &manipulator, int index)
Definition bdlar_arrayref.h:292
bsl::size_t bdlat_arraySize(const ArrayRef &array)
Definition bdlar_arrayref.h:315
Definition bdlar_arrayref.h:422
Definition bdlar_arrayvtable.h:71
AccessElement * d_accessElement_fp
Definition bdlar_arrayvtable.h:82
ElementCategory * d_elementCategory_fp
Definition bdlar_arrayvtable.h:81
XsdName * d_xsdName_fp
Definition bdlar_arrayvtable.h:84
Size * d_size_fp
Definition bdlar_arrayvtable.h:83
Definition bdlar_arrayvtable.h:96
ArrayConstVtable d_const
Definition bdlar_arrayvtable.h:105
Reset * d_reset_fp
Definition bdlar_arrayvtable.h:107
Resize * d_resize_fp
Definition bdlar_arrayvtable.h:108
ManipulateElement * d_manipulateElement_fp
Definition bdlar_arrayvtable.h:106
Definition bdlar_typecategory.h:77
bdlar::AnyConstRef Type
Definition bdlar_arrayref.h:439
bdlar::AnyRef Type
Definition bdlar_arrayref.h:434
Definition bdlat_arrayfunctions.h:756
Definition bdlat_arrayfunctions.h:762
Value
Definition bdlat_typecategory.h:1046
Definition bslmf_enableif.h:530