8#ifndef INCLUDED_BDLAR_SEQUENCEREF
9#define INCLUDED_BDLAR_SEQUENCEREF
53#include <bdlar_sequencevtable.h>
78 template <
class t_SEQUENCE>
81 IsSequence<t_SEQUENCE>::value>::type * = 0);
101 template <
class t_MANIPULATOR>
115 template <
class t_MANIPULATOR>
117 const char *attributeName,
118 int attributeNameLength)
const;
131 template <
class t_MANIPULATOR>
151 template <
class t_ACCESSOR>
165 template <
class t_ACCESSOR>
167 const char *attributeName,
168 int attributeNameLength)
const;
181 template <
class t_ACCESSOR>
195 int attributeNameLength)
const;
207 const void *d_object_p;
215 template <
class t_SEQUENCE>
218 IsSequence<t_SEQUENCE>::value>::type * = 0);
243 template <
class t_ACCESSOR>
257 template <
class t_ACCESSOR>
259 const char *attributeName,
260 int attributeNameLength)
const;
273 template <
class t_ACCESSOR>
287 int attributeNameLength)
const;
293 const char *
xsdName(
int format)
const;
305template <
class t_SEQUENCE>
309 IsSequence<t_SEQUENCE>::value>::type *)
310: d_object_p(&sequence)
317: d_object_p(objectAddress)
323template <
class t_MANIPULATOR>
326 int attributeId)
const
329 manipulatorRef(manipulator);
335template <
class t_MANIPULATOR>
338 const char *attributeName,
339 int attributeNameLength)
const
342 manipulatorRef(manipulator);
346 attributeNameLength);
349template <
class t_MANIPULATOR>
354 manipulatorRef(manipulator);
365template <
class t_ACCESSOR>
368 int attributeId)
const
371 accessorRef(accessor);
377template <
class t_ACCESSOR>
380 const char *attributeName,
381 int attributeNameLength)
const
384 accessorRef(accessor);
388 attributeNameLength);
391template <
class t_ACCESSOR>
396 accessorRef(accessor);
414 int attributeNameLength)
const
418 attributeNameLength);
430template <
class t_MANIPULATOR>
433 t_MANIPULATOR& manipulator,
434 const char *attributeName,
435 int attributeNameLength)
437 return ref->manipulateAttribute(manipulator,
439 attributeNameLength);
442template <
class t_MANIPULATOR>
445 t_MANIPULATOR& manipulator,
448 return ref->manipulateAttribute(manipulator, attributeId);
451template <
class t_MANIPULATOR>
454 t_MANIPULATOR& manipulator)
456 return ref->manipulateAttributes(manipulator);
459template <
class t_ACCESSOR>
462 t_ACCESSOR& accessor,
463 const char *attributeName,
464 int attributeNameLength)
466 return ref.accessAttribute(accessor, attributeName, attributeNameLength);
469template <
class t_ACCESSOR>
472 t_ACCESSOR& accessor,
475 return ref.accessAttribute(accessor, attributeId);
478template <
class t_ACCESSOR>
481 t_ACCESSOR& accessor)
483 return ref.accessAttributes(accessor);
488 const char *attributeName,
489 int attributeNameLength)
491 return ref.hasAttribute(attributeName, attributeNameLength);
497 return ref.hasAttribute(attributeId);
511template <
class t_SEQUENCE>
515 IsSequence<t_SEQUENCE>::value>::type *)
516: d_object_p(&sequence)
524: d_object_p(objectAddress)
531: d_object_p(object.objectAddress())
532, d_vtable_p(&object.vtable()->d_const)
537template <
class t_ACCESSOR>
540 int attributeId)
const
543 accessorRef(accessor);
549template <
class t_ACCESSOR>
552 const char *attributeName,
553 int attributeNameLength)
const
556 accessorRef(accessor);
560 attributeNameLength);
563template <
class t_ACCESSOR>
568 accessorRef(accessor);
586 int attributeNameLength)
const
590 attributeNameLength);
608template <
class t_ACCESSOR>
611 t_ACCESSOR& accessor,
612 const char *attributeName,
613 int attributeNameLength)
615 return ref.accessAttribute(accessor, attributeName, attributeNameLength);
618template <
class t_ACCESSOR>
621 t_ACCESSOR& accessor,
624 return ref.accessAttribute(accessor, attributeId);
627template <
class t_ACCESSOR>
630 t_ACCESSOR& accessor)
632 return ref.accessAttributes(accessor);
637 const char *attributeName,
638 int attributeNameLength)
640 return ref.hasAttribute(attributeName, attributeNameLength);
646 return ref.hasAttribute(attributeId);
652 return ref.xsdName(format);
Definition bdlar_dynamictyperef.h:128
Definition bdlar_sequenceref.h:205
const SequenceConstVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_sequenceref.h:573
const char * xsdName(int format) const
Return the bdlat_TypeName::xsdName value for the underlying object.
Definition bdlar_sequenceref.h:600
int accessAttributes(t_ACCESSOR &accessor) const
Definition bdlar_sequenceref.h:565
const void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_sequenceref.h:594
int accessAttribute(t_ACCESSOR &accessor, int attributeId) const
Definition bdlar_sequenceref.h:539
SequenceConstRef(const t_SEQUENCE &sequence, typename bsl::enable_if< IsSequence< t_SEQUENCE >::value >::type *=0)
Definition bdlar_sequenceref.h:513
bool hasAttribute(int attributeId) const
Definition bdlar_sequenceref.h:579
Definition bdlar_sequenceref.h:68
int accessAttributes(t_ACCESSOR &accessor) const
Definition bdlar_sequenceref.h:393
int manipulateAttributes(t_MANIPULATOR &manipulator) const
Definition bdlar_sequenceref.h:351
const SequenceVtable * vtable() const
Return a pointer to the vtable.
Definition bdlar_sequenceref.h:401
SequenceRef(t_SEQUENCE &sequence, typename bsl::enable_if< IsSequence< t_SEQUENCE >::value >::type *=0)
Definition bdlar_sequenceref.h:307
void * objectAddress() const
Return a pointer to the wrapped object.
Definition bdlar_sequenceref.h:422
int manipulateAttribute(t_MANIPULATOR &manipulator, int attributeId) const
Definition bdlar_sequenceref.h:325
void reset() const
Reset the referred object to the default value.
Definition bdlar_sequenceref.h:359
int accessAttribute(t_ACCESSOR &accessor, int attributeId) const
Definition bdlar_sequenceref.h:367
bool hasAttribute(int attributeId) const
Definition bdlar_sequenceref.h:407
Definition bdlar_sequencevtableutil.h:65
#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_sequenceHasAttribute(const SequenceRef &ref, const char *attributeName, int attributeNameLength)
Definition bdlar_sequenceref.h:487
int bdlat_sequenceAccessAttribute(const SequenceRef &ref, t_ACCESSOR &accessor, const char *attributeName, int attributeNameLength)
Definition bdlar_sequenceref.h:461
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_sequenceManipulateAttributes(SequenceRef *ref, t_MANIPULATOR &manipulator)
Definition bdlar_sequenceref.h:453
int bdlat_sequenceManipulateAttribute(SequenceRef *ref, t_MANIPULATOR &manipulator, const char *attributeName, int attributeNameLength)
Definition bdlar_sequenceref.h:432
int bdlat_sequenceAccessAttributes(const SequenceRef &ref, t_ACCESSOR &accessor)
Definition bdlar_sequenceref.h:480
Definition bdlar_sequenceref.h:657
Definition bdlar_sequencevtable.h:69
HasAttributeId * d_hasAttributeId_fp
Definition bdlar_sequencevtable.h:89
AccessAttributes * d_accessAttributes_fp
Definition bdlar_sequencevtable.h:92
HasAttributeName * d_hasAttributeName_fp
Definition bdlar_sequencevtable.h:88
XsdName * d_xsdName_fp
Definition bdlar_sequencevtable.h:93
AccessAttributeById * d_accessAttributeById_fp
Definition bdlar_sequencevtable.h:90
AccessAttributeByName * d_accessAttributeByName_fp
Definition bdlar_sequencevtable.h:91
Definition bdlar_sequencevtable.h:105
ManipulateAttributeById * d_manipulateAttributeById_fp
Definition bdlar_sequencevtable.h:121
ManipulateAttributes * d_manipulateAttributes_fp
Definition bdlar_sequencevtable.h:123
SequenceConstVtable d_const
Definition bdlar_sequencevtable.h:120
ManipulateAttributeByName * d_manipulateAttributeByName_fp
Definition bdlar_sequencevtable.h:122
Reset * d_reset_fp
Definition bdlar_sequencevtable.h:124
Definition bdlat_sequencefunctions.h:674
Definition bslmf_enableif.h:530