BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlar_sequencevtable.h
Go to the documentation of this file.
1/// @file bdlar_sequencevtable.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bdlar_sequencevtable.h -*-C++-*-
8#ifndef INCLUDED_BDLAR_SEQUENCEVTABLE
9#define INCLUDED_BDLAR_SEQUENCEVTABLE
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bdlar_sequencevtable bdlar_sequencevtable
15/// @brief Provide ...
16/// @addtogroup bdl
17/// @{
18/// @addtogroup bdlar
19/// @{
20/// @addtogroup bdlar_sequencevtable
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bdlar_sequencevtable-purpose"> Purpose</a>
25/// * <a href="#bdlar_sequencevtable-classes"> Classes </a>
26/// * <a href="#bdlar_sequencevtable-description"> Description </a>
27///
28/// # Purpose {#bdlar_sequencevtable-purpose}
29/// Provide ...
30///
31/// # Classes {#bdlar_sequencevtable-classes}
32///
33/// - bdlar::SequenceVtable: ...
34/// - bdlar::SequenceConstVtable: ...
35///
36/// # Description {#bdlar_sequencevtable-description}
37/// This component provides ...
38///
39/// @}
40/** @} */
41/** @} */
42
43/** @addtogroup bdl
44 * @{
45 */
46/** @addtogroup bdlar
47 * @{
48 */
49/** @addtogroup bdlar_sequencevtable
50 * @{
51 */
52
53
54namespace bdlar {
55
56// Forward
57class AccessorWithInfoRef;
58class ManipulatorWithInfoRef;
59
60 // ==========================
61 // struct SequenceConstVtable
62 // ==========================
63
64/// This struct stores a series of function pointers to wrappers that invoke
65/// the underlying methods with read-only access of the supplied type erased
66/// object that implement the "sequence" type category.
67///
68/// See @ref bdlar_sequencevtable
70 // TYPES
71 typedef bool HasAttributeName(const void *object,
72 const char *attributeName,
73 int attributeNameLength);
74 typedef bool HasAttributeId(const void *object, int attributeId);
75 typedef int AccessAttributeById(const void *object,
76 AccessorWithInfoRef& accessor,
77 int attributeId);
79 const void *object,
80 AccessorWithInfoRef& accessor,
81 const char *attributeName,
82 int attributeNameLength);
83 typedef int AccessAttributes(const void *object,
84 AccessorWithInfoRef& accessor);
85 typedef const char *XsdName(const void *object, int format);
86
87 // PUBLIC DATA
88 HasAttributeName *d_hasAttributeName_fp;
89 HasAttributeId *d_hasAttributeId_fp;
90 AccessAttributeById *d_accessAttributeById_fp;
91 AccessAttributeByName *d_accessAttributeByName_fp;
92 AccessAttributes *d_accessAttributes_fp;
93 XsdName *d_xsdName_fp;
94};
95
96 // =====================
97 // struct SequenceVtable
98 // =====================
99
100/// This struct stores a series of function pointers to wrappers that invoke
101/// the underlying methods of the supplied type erased object that implement
102/// the "sequence" type category.
103///
104/// See @ref bdlar_sequencevtable
106 // TYPES
107 typedef int ManipulateAttributeById(void *object,
108 ManipulatorWithInfoRef& manipilator,
109 int attributeId);
111 void *object,
112 ManipulatorWithInfoRef& manipilator,
113 const char *attributeName,
114 int attributeNameLength);
115 typedef int ManipulateAttributes(void *object,
116 ManipulatorWithInfoRef& manipilator);
117 typedef void Reset(void *object);
118
119 // PUBLIC DATA
121 ManipulateAttributeById *d_manipulateAttributeById_fp;
122 ManipulateAttributeByName *d_manipulateAttributeByName_fp;
123 ManipulateAttributes *d_manipulateAttributes_fp;
125};
126
127} // close package namespace
128
129
130#endif
131
132// ----------------------------------------------------------------------------
133// Copyright 2024 Bloomberg Finance L.P.
134//
135// Licensed under the Apache License, Version 2.0 (the "License");
136// you may not use this file except in compliance with the License.
137// You may obtain a copy of the License at
138//
139// http://www.apache.org/licenses/LICENSE-2.0
140//
141// Unless required by applicable law or agreed to in writing, software
142// distributed under the License is distributed on an "AS IS" BASIS,
143// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144// See the License for the specific language governing permissions and
145// limitations under the License.
146// ----------------------------- END-OF-FILE ----------------------------------
147
148/** @} */
149/** @} */
150/** @} */
Definition bdlar_accessorref.h:109
Definition bdlar_manipulatorref.h:109
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlar_accessorref.h:59
Definition bdlar_sequencevtable.h:69
bool HasAttributeId(const void *object, int attributeId)
Definition bdlar_sequencevtable.h:74
HasAttributeId * d_hasAttributeId_fp
Definition bdlar_sequencevtable.h:89
AccessAttributes * d_accessAttributes_fp
Definition bdlar_sequencevtable.h:92
const char * XsdName(const void *object, int format)
Definition bdlar_sequencevtable.h:85
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
int AccessAttributeByName(const void *object, AccessorWithInfoRef &accessor, const char *attributeName, int attributeNameLength)
Definition bdlar_sequencevtable.h:78
int AccessAttributeById(const void *object, AccessorWithInfoRef &accessor, int attributeId)
Definition bdlar_sequencevtable.h:75
AccessAttributeByName * d_accessAttributeByName_fp
Definition bdlar_sequencevtable.h:91
int AccessAttributes(const void *object, AccessorWithInfoRef &accessor)
Definition bdlar_sequencevtable.h:83
bool HasAttributeName(const void *object, const char *attributeName, int attributeNameLength)
Definition bdlar_sequencevtable.h:71
Definition bdlar_sequencevtable.h:105
int ManipulateAttributeByName(void *object, ManipulatorWithInfoRef &manipilator, const char *attributeName, int attributeNameLength)
Definition bdlar_sequencevtable.h:110
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
int ManipulateAttributeById(void *object, ManipulatorWithInfoRef &manipilator, int attributeId)
Definition bdlar_sequencevtable.h:107
int ManipulateAttributes(void *object, ManipulatorWithInfoRef &manipilator)
Definition bdlar_sequencevtable.h:115
ManipulateAttributeByName * d_manipulateAttributeByName_fp
Definition bdlar_sequencevtable.h:122
void Reset(void *object)
Definition bdlar_sequencevtable.h:117
Reset * d_reset_fp
Definition bdlar_sequencevtable.h:124