BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlar_arrayvtable.h
Go to the documentation of this file.
1/// @file bdlar_arrayvtable.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bdlar_arrayvtable.h -*-C++-*-
8#ifndef INCLUDED_BDLAR_ARRAYVTABLE
9#define INCLUDED_BDLAR_ARRAYVTABLE
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bdlar_arrayvtable bdlar_arrayvtable
15/// @brief Provide ...
16/// @addtogroup bdl
17/// @{
18/// @addtogroup bdlar
19/// @{
20/// @addtogroup bdlar_arrayvtable
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bdlar_arrayvtable-purpose"> Purpose</a>
25/// * <a href="#bdlar_arrayvtable-classes"> Classes </a>
26/// * <a href="#bdlar_arrayvtable-description"> Description </a>
27///
28/// # Purpose {#bdlar_arrayvtable-purpose}
29/// Provide ...
30///
31/// # Classes {#bdlar_arrayvtable-classes}
32///
33/// - bdlar::ArrayVtable: ...
34/// - bdlar::ArrayConstVtable: ...
35///
36/// # Description {#bdlar_arrayvtable-description}
37/// This component provides ...
38///
39/// @}
40/** @} */
41/** @} */
42
43/** @addtogroup bdl
44 * @{
45 */
46/** @addtogroup bdlar
47 * @{
48 */
49/** @addtogroup bdlar_arrayvtable
50 * @{
51 */
52
53#include <bdlat_typecategory.h>
54
55
56namespace bdlar {
57
58// Forward
59class AccessorRef;
60class ManipulatorRef;
61
62 // =======================
63 // struct ArrayConstVtable
64 // =======================
65
66/// This struct stores a series of function pointers to wrappers that invoke
67/// the underlying methods with read-only access of the supplied type erased
68/// object that implement the "array" type category.
69///
70/// See @ref bdlar_arrayvtable
72 // TYPES
74 typedef int AccessElement(const void *array,
75 AccessorRef& accessor,
76 int index);
77 typedef bsl::size_t Size(const void *array);
78 typedef const char *XsdName(const void *object, int format);
79
80 // PUBLIC DATA
85};
86
87 // ==================
88 // struct ArrayVtable
89 // ==================
90
91/// This struct stores a series of function pointers to wrappers that invoke
92/// the underlying methods of the supplied type erased object that implement
93/// the "array" type category.
94///
95/// See @ref bdlar_arrayvtable
97 // TYPES
98 typedef int ManipulateElement(void *array,
99 ManipulatorRef& manipulator,
100 int index);
101 typedef void Reset(void *object);
102 typedef void Resize(void *array, int newSize);
103
104 // PUBLIC DATA
109};
110
111} // close package namespace
112
113
114#endif
115
116// ----------------------------------------------------------------------------
117// Copyright 2024 Bloomberg Finance L.P.
118//
119// Licensed under the Apache License, Version 2.0 (the "License");
120// you may not use this file except in compliance with the License.
121// You may obtain a copy of the License at
122//
123// http://www.apache.org/licenses/LICENSE-2.0
124//
125// Unless required by applicable law or agreed to in writing, software
126// distributed under the License is distributed on an "AS IS" BASIS,
127// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
128// See the License for the specific language governing permissions and
129// limitations under the License.
130// ----------------------------- END-OF-FILE ----------------------------------
131
132/** @} */
133/** @} */
134/** @} */
Definition bdlar_accessorref.h:65
Definition bdlar_manipulatorref.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
Definition bdlar_arrayvtable.h:71
AccessElement * d_accessElement_fp
Definition bdlar_arrayvtable.h:82
ElementCategory * d_elementCategory_fp
Definition bdlar_arrayvtable.h:81
bdlat_TypeCategory::Value ElementCategory()
Definition bdlar_arrayvtable.h:73
int AccessElement(const void *array, AccessorRef &accessor, int index)
Definition bdlar_arrayvtable.h:74
XsdName * d_xsdName_fp
Definition bdlar_arrayvtable.h:84
bsl::size_t Size(const void *array)
Definition bdlar_arrayvtable.h:77
const char * XsdName(const void *object, int format)
Definition bdlar_arrayvtable.h:78
Size * d_size_fp
Definition bdlar_arrayvtable.h:83
Definition bdlar_arrayvtable.h:96
ArrayConstVtable d_const
Definition bdlar_arrayvtable.h:105
int ManipulateElement(void *array, ManipulatorRef &manipulator, int index)
Definition bdlar_arrayvtable.h:98
Reset * d_reset_fp
Definition bdlar_arrayvtable.h:107
void Reset(void *object)
Definition bdlar_arrayvtable.h:101
Resize * d_resize_fp
Definition bdlar_arrayvtable.h:108
void Resize(void *array, int newSize)
Definition bdlar_arrayvtable.h:102
ManipulateElement * d_manipulateElement_fp
Definition bdlar_arrayvtable.h:106
Value
Definition bdlat_typecategory.h:1046