WPILibC++ 2027.0.0-alpha-3
Loading...
Searching...
No Matches
accessors.h
Go to the documentation of this file.
1// Protocol Buffers - Google's data interchange format
2// Copyright 2023 Google LLC. All rights reserved.
3//
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file or at
6// https://developers.google.com/open-source/licenses/bsd
7
8#ifndef UPB_MESSAGE_ACCESSORS_H_
9#define UPB_MESSAGE_ACCESSORS_H_
10
11#include <stdint.h>
12
14#include "upb/mem/arena.h"
15#include "upb/message/array.h"
17#include "upb/message/map.h"
18#include "upb/message/message.h"
20#include "upb/message/value.h"
24
25// Must be last.
26#include "upb/port/def.inc"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32// Functions ending in BaseField() take a (upb_MiniTableField*) argument
33// and work only on non-extension fields.
34//
35// Functions ending in Extension() take a (upb_MiniTableExtension*) argument
36// and work only on extensions.
37
39
41 const upb_MiniTableField* f);
42
44 const upb_MiniTableExtension* e);
45
47 const upb_MiniTable* m,
48 const upb_MiniTableField* f);
49
51 const upb_MiniTableField* f);
52
54 const upb_MiniTableExtension* e);
55
58 upb_MessageValue default_val);
59
61 const upb_Message* msg, const upb_MiniTableField* field,
62 upb_Message* default_val);
63
65 const upb_Message* msg, const upb_MiniTableField* f);
66
68 const upb_MiniTableField* f,
69 bool default_val);
70
72 const upb_MiniTableField* field,
73 double default_val);
74
76 const upb_MiniTableField* f,
77 float default_val);
78
80 const upb_MiniTableField* f,
81 int32_t default_val);
82
84 const upb_MiniTableField* f,
85 int64_t default_val);
86
88 const upb_MiniTableField* f);
89
91 const upb_Message* msg, const upb_MiniTableField* f);
92
94 upb_Message* msg, const upb_MiniTableField* f);
95
97 const upb_MiniTableField* f);
98
100 upb_Message* msg, const upb_MiniTableField* f);
101
103 upb_Message* msg, const upb_MiniTableField* f, upb_Arena* arena);
104
106 upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
107 const upb_MiniTableField* f, upb_Arena* arena);
108
110 upb_Message* msg, const upb_MiniTable* mini_table,
111 const upb_MiniTableField* f, upb_Arena* arena);
112
115 upb_StringView default_val);
116
118 const upb_MiniTableField* f,
119 uint32_t default_val);
120
122 const upb_MiniTableField* f,
123 uint64_t default_val);
124
126 upb_Message* msg, const upb_MiniTable* msg_mini_table,
127 const upb_MiniTableField* f, int32_t value);
128
129// BaseField Setters ///////////////////////////////////////////////////////////
130
132 const upb_MiniTableField* f,
133 const void* val);
134
136 const upb_MiniTableField* f,
137 bool value);
138
140 const upb_MiniTableField* f,
141 double value);
142
144 const upb_MiniTableField* f,
145 float value);
146
148 const upb_MiniTableField* f,
149 int32_t value);
150
152 const upb_MiniTableField* f,
153 int64_t value);
154
156 const upb_MiniTableField* f,
157 upb_Message* value);
158
160 const upb_MiniTableField* f,
161 upb_StringView value);
162
164 const upb_MiniTableField* f,
165 uint32_t value);
166
168 const upb_MiniTableField* f,
169 uint64_t value);
170
171// Extension Getters ///////////////////////////////////////////////////////////
173 const upb_Message* msg, const upb_MiniTableExtension* f, bool default_val);
174
176 const upb_Message* msg, const upb_MiniTableExtension* f,
177 double default_val);
178
180 const upb_Message* msg, const upb_MiniTableExtension* f, float default_val);
181
183 const upb_Message* msg, const upb_MiniTableExtension* f,
184 int32_t default_val);
185
187 const upb_Message* msg, const upb_MiniTableExtension* f,
188 int64_t default_val);
189
191 const upb_Message* msg, const upb_MiniTableExtension* f,
192 uint32_t default_val);
193
195 const upb_Message* msg, const upb_MiniTableExtension* f,
196 uint64_t default_val);
197
199 const upb_Message* msg, const upb_MiniTableExtension* f,
200 upb_StringView default_val);
201
203 const upb_Message* msg, const upb_MiniTableExtension* f,
204 struct upb_Message* default_val);
205
207 const upb_Message* msg, const upb_MiniTableExtension* f);
208
210 upb_Message* msg, const upb_MiniTableExtension* f);
211
212// Extension Setters ///////////////////////////////////////////////////////////
213
215 const upb_MiniTableExtension* e,
216 const void* value, upb_Arena* a);
217
219 struct upb_Message* msg, const upb_MiniTableExtension* e,
220 struct upb_Message* value, upb_Arena* a);
221
223 struct upb_Message* msg, const upb_MiniTableExtension* e, bool value,
224 upb_Arena* a);
225
227 struct upb_Message* msg, const upb_MiniTableExtension* e, double value,
228 upb_Arena* a);
229
231 struct upb_Message* msg, const upb_MiniTableExtension* e, float value,
232 upb_Arena* a);
233
235 struct upb_Message* msg, const upb_MiniTableExtension* e, int32_t value,
236 upb_Arena* a);
237
239 struct upb_Message* msg, const upb_MiniTableExtension* e, int64_t value,
240 upb_Arena* a);
241
243 struct upb_Message* msg, const upb_MiniTableExtension* e,
244 upb_StringView value, upb_Arena* a);
245
247 struct upb_Message* msg, const upb_MiniTableExtension* e, uint32_t value,
248 upb_Arena* a);
249
251 struct upb_Message* msg, const upb_MiniTableExtension* e, uint64_t value,
252 upb_Arena* a);
253
254// Universal Setters ///////////////////////////////////////////////////////////
255
257 const upb_MiniTableField* f, bool value,
258 upb_Arena* a);
259
261 const upb_MiniTableField* f,
262 double value, upb_Arena* a);
263
265 const upb_MiniTableField* f,
266 float value, upb_Arena* a);
267
269 const upb_MiniTableField* f,
270 int32_t value, upb_Arena* a);
271
273 const upb_MiniTableField* f,
274 int64_t value, upb_Arena* a);
275
276// Unlike the other similarly-named setters, this function can only be
277// called on base fields. Prefer upb_Message_SetBaseFieldMessage().
279 const upb_MiniTableField* f,
280 upb_Message* value);
281
283 const upb_MiniTableField* f,
284 upb_StringView value, upb_Arena* a);
285
287 const upb_MiniTableField* f,
288 uint32_t value, upb_Arena* a);
289
291 const upb_MiniTableField* f,
292 uint64_t value, upb_Arena* a);
293
294////////////////////////////////////////////////////////////////////////////////
295
297 upb_Message* msg, const upb_MiniTableField* f, size_t size,
298 upb_Arena* arena);
299
301 const upb_Message* message, const upb_MiniTableField* oneof_field);
302
303// For a field `f` which is in a oneof, return the field of that
304// oneof that is actually set (or NULL if none).
306 const upb_Message* msg, const upb_MiniTable* m,
307 const upb_MiniTableField* f);
308
309// Updates a map entry given an entry message.
311 const upb_MiniTableField* field,
312 upb_Message* map_entry_message, upb_Arena* arena);
313
314#ifdef __cplusplus
315} /* extern "C" */
316#endif
317
318#include "upb/port/undef.inc"
319
320#endif // UPB_MESSAGE_ACCESSORS_H_
UPB_API_INLINE bool upb_Message_SetExtensionInt32(struct upb_Message *msg, const upb_MiniTableExtension *e, int32_t value, upb_Arena *a)
Definition accessors.h:728
UPB_API_INLINE bool upb_Message_HasBaseField(const upb_Message *msg, const upb_MiniTableField *f)
UPB_API_INLINE bool upb_Message_HasExtension(const upb_Message *msg, const upb_MiniTableExtension *e)
UPB_API_INLINE upb_Map * upb_Message_GetOrCreateMutableMap(upb_Message *msg, const upb_MiniTable *map_entry_mini_table, const upb_MiniTableField *f, upb_Arena *arena)
Definition accessors.h:523
UPB_API_INLINE void upb_Message_SetBaseFieldDouble(struct upb_Message *msg, const upb_MiniTableField *f, double value)
Definition accessors.h:605
UPB_API_INLINE void upb_Message_SetBaseFieldInt32(struct upb_Message *msg, const upb_MiniTableField *f, int32_t value)
Definition accessors.h:623
UPB_API_INLINE bool upb_Message_SetExtensionFloat(struct upb_Message *msg, const upb_MiniTableExtension *e, float value, upb_Arena *a)
Definition accessors.h:719
UPB_API_INLINE void upb_Message_ClearBaseField(upb_Message *msg, const upb_MiniTableField *f)
Definition accessors.h:873
UPB_API_INLINE const upb_Array * upb_Message_GetArray(const upb_Message *msg, const upb_MiniTableField *f)
UPB_API_INLINE bool upb_Message_SetExtensionInt64(struct upb_Message *msg, const upb_MiniTableExtension *e, int64_t value, upb_Arena *a)
Definition accessors.h:738
UPB_API_INLINE float upb_Message_GetFloat(const upb_Message *msg, const upb_MiniTableField *f, float default_val)
UPB_API_INLINE bool upb_Message_SetExtensionMessage(struct upb_Message *msg, const upb_MiniTableExtension *e, struct upb_Message *value, upb_Arena *a)
Definition accessors.h:691
UPB_API_INLINE int32_t upb_Message_GetExtensionInt32(const upb_Message *msg, const upb_MiniTableExtension *f, int32_t default_val)
UPB_API_INLINE const upb_Message * upb_Message_GetMessage(const upb_Message *msg, const upb_MiniTableField *f)
UPB_API_INLINE void upb_Message_SetClosedEnum(upb_Message *msg, const upb_MiniTable *msg_mini_table, const upb_MiniTableField *f, int32_t value)
Definition accessors.h:678
UPB_API_INLINE float upb_Message_GetExtensionFloat(const upb_Message *msg, const upb_MiniTableExtension *f, float default_val)
UPB_API_INLINE upb_Message * upb_Message_GetOrCreateMutableMessage(upb_Message *msg, const upb_MiniTable *mini_table, const upb_MiniTableField *f, upb_Arena *arena)
Definition accessors.h:537
UPB_API_INLINE void upb_Message_SetBaseFieldBool(struct upb_Message *msg, const upb_MiniTableField *f, bool value)
Definition accessors.h:596
UPB_API_INLINE bool upb_Message_SetUInt32(upb_Message *msg, const upb_MiniTableField *f, uint32_t value, upb_Arena *a)
Definition accessors.h:844
UPB_API_INLINE int32_t upb_Message_GetInt32(const upb_Message *msg, const upb_MiniTableField *f, int32_t default_val)
UPB_API_INLINE bool upb_Message_SetUInt64(upb_Message *msg, const upb_MiniTableField *f, uint64_t value, upb_Arena *a)
Definition accessors.h:853
UPB_API_INLINE uint64_t upb_Message_GetExtensionUInt64(const upb_Message *msg, const upb_MiniTableExtension *f, uint64_t default_val)
UPB_API_INLINE uint64_t upb_Message_GetUInt64(const upb_Message *msg, const upb_MiniTableField *f, uint64_t default_val)
UPB_API_INLINE upb_Array * upb_Message_GetExtensionMutableArray(upb_Message *msg, const upb_MiniTableExtension *f)
Definition accessors.h:1045
UPB_API_INLINE bool upb_Message_SetDouble(upb_Message *msg, const upb_MiniTableField *f, double value, upb_Arena *a)
Definition accessors.h:786
UPB_API_INLINE uint32_t upb_Message_GetUInt32(const upb_Message *msg, const upb_MiniTableField *f, uint32_t default_val)
UPB_API_INLINE uint32_t upb_Message_GetExtensionUInt32(const upb_Message *msg, const upb_MiniTableExtension *f, uint32_t default_val)
UPB_API_INLINE int64_t upb_Message_GetExtensionInt64(const upb_Message *msg, const upb_MiniTableExtension *f, int64_t default_val)
UPB_API_INLINE bool upb_Message_GetBool(const upb_Message *msg, const upb_MiniTableField *f, bool default_val)
UPB_API_INLINE bool upb_Message_SetExtensionBool(struct upb_Message *msg, const upb_MiniTableExtension *e, bool value, upb_Arena *a)
Definition accessors.h:701
UPB_API_INLINE upb_StringView upb_Message_GetString(const upb_Message *msg, const upb_MiniTableField *field, upb_StringView default_val)
UPB_API_INLINE bool upb_Message_SetFloat(upb_Message *msg, const upb_MiniTableField *f, float value, upb_Arena *a)
Definition accessors.h:795
UPB_API_INLINE void upb_Message_ClearExtension(upb_Message *msg, const upb_MiniTableExtension *e)
Definition accessors.h:888
UPB_API_INLINE bool upb_Message_SetExtensionUInt32(struct upb_Message *msg, const upb_MiniTableExtension *e, uint32_t value, upb_Arena *a)
Definition accessors.h:757
UPB_API_INLINE upb_Array * upb_Message_GetOrCreateMutableArray(upb_Message *msg, const upb_MiniTableField *f, upb_Arena *arena)
Definition accessors.h:489
UPB_API_INLINE bool upb_Message_SetInt32(upb_Message *msg, const upb_MiniTableField *f, int32_t value, upb_Arena *a)
Definition accessors.h:804
UPB_API_INLINE upb_Map * upb_Message_GetMutableMap(upb_Message *msg, const upb_MiniTableField *f)
Definition accessors.h:479
bool upb_Message_SetMapEntry(upb_Map *map, const upb_MiniTable *mini_table, const upb_MiniTableField *field, upb_Message *map_entry_message, upb_Arena *arena)
UPB_API_INLINE upb_Message * upb_Message_GetMutableMessage(upb_Message *msg, const upb_MiniTableField *f)
Definition accessors.h:484
UPB_API_INLINE void upb_Message_Clear(upb_Message *msg, const upb_MiniTable *m)
Definition accessors.h:862
UPB_API_INLINE const upb_Map * upb_Message_GetMap(const upb_Message *msg, const upb_MiniTableField *f)
UPB_API_INLINE upb_TaggedMessagePtr upb_Message_GetTaggedMessagePtr(const upb_Message *msg, const upb_MiniTableField *field, upb_Message *default_val)
UPB_API_INLINE void upb_Message_SetBaseFieldUInt64(struct upb_Message *msg, const upb_MiniTableField *f, uint64_t value)
Definition accessors.h:669
UPB_API_INLINE const upb_MiniTableField * upb_Message_WhichOneof(const upb_Message *msg, const upb_MiniTable *m, const upb_MiniTableField *f)
UPB_API_INLINE bool upb_Message_SetExtensionUInt64(struct upb_Message *msg, const upb_MiniTableExtension *e, uint64_t value, upb_Arena *a)
Definition accessors.h:766
UPB_API_INLINE upb_StringView upb_Message_GetExtensionString(const upb_Message *msg, const upb_MiniTableExtension *f, upb_StringView default_val)
UPB_API_INLINE bool upb_Message_SetString(upb_Message *msg, const upb_MiniTableField *f, upb_StringView value, upb_Arena *a)
Definition accessors.h:835
UPB_API_INLINE void upb_Message_ClearOneof(upb_Message *msg, const upb_MiniTable *m, const upb_MiniTableField *f)
Definition accessors.h:905
UPB_API_INLINE void upb_Message_SetBaseFieldString(struct upb_Message *msg, const upb_MiniTableField *f, upb_StringView value)
Definition accessors.h:649
UPB_API_INLINE bool upb_Message_SetExtension(upb_Message *msg, const upb_MiniTableExtension *e, const void *value, upb_Arena *a)
Definition accessors.h:322
UPB_API_INLINE bool upb_Message_SetBool(upb_Message *msg, const upb_MiniTableField *f, bool value, upb_Arena *a)
Definition accessors.h:777
UPB_API_INLINE upb_MessageValue upb_Message_GetField(const upb_Message *msg, const upb_MiniTableField *f, upb_MessageValue default_val)
UPB_API_INLINE bool upb_Message_SetExtensionString(struct upb_Message *msg, const upb_MiniTableExtension *e, upb_StringView value, upb_Arena *a)
Definition accessors.h:747
UPB_API_INLINE void * upb_Message_ResizeArrayUninitialized(upb_Message *msg, const upb_MiniTableField *f, size_t size, upb_Arena *arena)
Definition accessors.h:920
UPB_API_INLINE double upb_Message_GetDouble(const upb_Message *msg, const upb_MiniTableField *field, double default_val)
UPB_API_INLINE upb_Array * upb_Message_GetMutableArray(upb_Message *msg, const upb_MiniTableField *f)
Definition accessors.h:473
UPB_API_INLINE const upb_Array * upb_Message_GetExtensionArray(const upb_Message *msg, const upb_MiniTableExtension *f)
UPB_API_INLINE void upb_Message_SetBaseField(upb_Message *msg, const upb_MiniTableField *f, const void *val)
Definition accessors.h:312
UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(const upb_Message *message, const upb_MiniTableField *oneof_field)
UPB_API_INLINE void upb_Message_SetMessage(upb_Message *msg, const upb_MiniTableField *f, upb_Message *value)
Definition accessors.h:824
UPB_API_INLINE bool upb_Message_GetExtensionBool(const upb_Message *msg, const upb_MiniTableExtension *f, bool default_val)
UPB_API_INLINE void upb_Message_SetBaseFieldMessage(struct upb_Message *msg, const upb_MiniTableField *f, upb_Message *value)
Definition accessors.h:642
UPB_API_INLINE bool upb_Message_SetInt64(upb_Message *msg, const upb_MiniTableField *f, int64_t value, upb_Arena *a)
Definition accessors.h:813
UPB_API_INLINE void upb_Message_SetBaseFieldInt64(struct upb_Message *msg, const upb_MiniTableField *f, int64_t value)
Definition accessors.h:633
UPB_API_INLINE double upb_Message_GetExtensionDouble(const upb_Message *msg, const upb_MiniTableExtension *f, double default_val)
UPB_API_INLINE void upb_Message_SetBaseFieldUInt32(struct upb_Message *msg, const upb_MiniTableField *f, uint32_t value)
Definition accessors.h:660
UPB_API_INLINE upb_Message * upb_Message_GetExtensionMessage(const upb_Message *msg, const upb_MiniTableExtension *f, struct upb_Message *default_val)
UPB_API_INLINE int64_t upb_Message_GetInt64(const upb_Message *msg, const upb_MiniTableField *f, int64_t default_val)
UPB_API_INLINE bool upb_Message_SetExtensionDouble(struct upb_Message *msg, const upb_MiniTableExtension *e, double value, upb_Arena *a)
Definition accessors.h:710
UPB_API_INLINE void upb_Message_SetBaseFieldFloat(struct upb_Message *msg, const upb_MiniTableField *f, float value)
Definition accessors.h:614
#define UPB_API_INLINE
Definition def.inc:163
Definition arena.h:29
Definition array.h:30
Definition map.h:38
Definition types.h:18
Definition extension.h:21
Definition field.h:21
Definition message.h:54
Definition string_view.h:23
uintptr_t upb_TaggedMessagePtr
Definition tagged_ptr.h:28
Definition value.h:27