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