File indexing completed on 2026-09-21 09:28:40
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef UPB_MESSAGE_ACCESSORS_H_
0009 #define UPB_MESSAGE_ACCESSORS_H_
0010
0011 #include <stdint.h>
0012
0013 #include "upb/base/string_view.h"
0014 #include "upb/mem/arena.h"
0015 #include "upb/message/array.h"
0016 #include "upb/message/internal/accessors.h"
0017 #include "upb/message/map.h"
0018 #include "upb/message/message.h"
0019 #include "upb/message/tagged_ptr.h"
0020 #include "upb/message/value.h"
0021 #include "upb/mini_table/extension.h"
0022 #include "upb/mini_table/field.h"
0023 #include "upb/mini_table/message.h"
0024
0025
0026 #include "upb/port/def.inc"
0027
0028 #ifdef __cplusplus
0029 extern "C" {
0030 #endif
0031
0032
0033
0034
0035
0036
0037
0038 UPB_API_INLINE void upb_Message_Clear(upb_Message* msg, const upb_MiniTable* m);
0039
0040 UPB_API_INLINE void upb_Message_ClearBaseField(upb_Message* msg,
0041 const upb_MiniTableField* f);
0042
0043 UPB_API_INLINE void upb_Message_ClearExtension(upb_Message* msg,
0044 const upb_MiniTableExtension* e);
0045
0046 UPB_API_INLINE void upb_Message_ClearOneof(upb_Message* msg,
0047 const upb_MiniTable* m,
0048 const upb_MiniTableField* f);
0049
0050 UPB_API_INLINE bool upb_Message_HasBaseField(const upb_Message* msg,
0051 const upb_MiniTableField* f);
0052
0053 UPB_API_INLINE bool upb_Message_HasExtension(const upb_Message* msg,
0054 const upb_MiniTableExtension* e);
0055
0056 UPB_API_INLINE upb_MessageValue
0057 upb_Message_GetField(const upb_Message* msg, const upb_MiniTableField* f,
0058 upb_MessageValue default_val);
0059
0060 UPB_API_INLINE upb_TaggedMessagePtr upb_Message_GetTaggedMessagePtr(
0061 const upb_Message* msg, const upb_MiniTableField* field,
0062 upb_Message* default_val);
0063
0064 UPB_API_INLINE const upb_Array* upb_Message_GetArray(
0065 const upb_Message* msg, const upb_MiniTableField* f);
0066
0067 UPB_API_INLINE bool upb_Message_GetBool(const upb_Message* msg,
0068 const upb_MiniTableField* f,
0069 bool default_val);
0070
0071 UPB_API_INLINE double upb_Message_GetDouble(const upb_Message* msg,
0072 const upb_MiniTableField* field,
0073 double default_val);
0074
0075 UPB_API_INLINE float upb_Message_GetFloat(const upb_Message* msg,
0076 const upb_MiniTableField* f,
0077 float default_val);
0078
0079 UPB_API_INLINE int32_t upb_Message_GetInt32(const upb_Message* msg,
0080 const upb_MiniTableField* f,
0081 int32_t default_val);
0082
0083 UPB_API_INLINE int64_t upb_Message_GetInt64(const upb_Message* msg,
0084 const upb_MiniTableField* f,
0085 int64_t default_val);
0086
0087 UPB_API_INLINE const upb_Map* upb_Message_GetMap(const upb_Message* msg,
0088 const upb_MiniTableField* f);
0089
0090 UPB_API_INLINE const upb_Message* upb_Message_GetMessage(
0091 const upb_Message* msg, const upb_MiniTableField* f);
0092
0093 UPB_API_INLINE upb_Array* upb_Message_GetMutableArray(
0094 upb_Message* msg, const upb_MiniTableField* f);
0095
0096 UPB_API_INLINE upb_Map* upb_Message_GetMutableMap(upb_Message* msg,
0097 const upb_MiniTableField* f);
0098
0099 UPB_API_INLINE upb_Message* upb_Message_GetMutableMessage(
0100 upb_Message* msg, const upb_MiniTableField* f);
0101
0102 UPB_API_INLINE upb_Array* upb_Message_GetOrCreateMutableArray(
0103 upb_Message* msg, const upb_MiniTableField* f, upb_Arena* arena);
0104
0105 UPB_API_INLINE upb_Map* upb_Message_GetOrCreateMutableMap(
0106 upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
0107 const upb_MiniTableField* f, upb_Arena* arena);
0108
0109 UPB_API_INLINE upb_Message* upb_Message_GetOrCreateMutableMessage(
0110 upb_Message* msg, const upb_MiniTable* mini_table,
0111 const upb_MiniTableField* f, upb_Arena* arena);
0112
0113 UPB_API_INLINE upb_StringView
0114 upb_Message_GetString(const upb_Message* msg, const upb_MiniTableField* field,
0115 upb_StringView default_val);
0116
0117 UPB_API_INLINE uint32_t upb_Message_GetUInt32(const upb_Message* msg,
0118 const upb_MiniTableField* f,
0119 uint32_t default_val);
0120
0121 UPB_API_INLINE uint64_t upb_Message_GetUInt64(const upb_Message* msg,
0122 const upb_MiniTableField* f,
0123 uint64_t default_val);
0124
0125 UPB_API_INLINE void upb_Message_SetClosedEnum(
0126 upb_Message* msg, const upb_MiniTable* msg_mini_table,
0127 const upb_MiniTableField* f, int32_t value);
0128
0129
0130
0131 UPB_API_INLINE void upb_Message_SetBaseField(upb_Message* msg,
0132 const upb_MiniTableField* f,
0133 const void* val);
0134
0135 UPB_API_INLINE void upb_Message_SetBaseFieldBool(struct upb_Message* msg,
0136 const upb_MiniTableField* f,
0137 bool value);
0138
0139 UPB_API_INLINE void upb_Message_SetBaseFieldDouble(struct upb_Message* msg,
0140 const upb_MiniTableField* f,
0141 double value);
0142
0143 UPB_API_INLINE void upb_Message_SetBaseFieldFloat(struct upb_Message* msg,
0144 const upb_MiniTableField* f,
0145 float value);
0146
0147 UPB_API_INLINE void upb_Message_SetBaseFieldInt32(struct upb_Message* msg,
0148 const upb_MiniTableField* f,
0149 int32_t value);
0150
0151 UPB_API_INLINE void upb_Message_SetBaseFieldInt64(struct upb_Message* msg,
0152 const upb_MiniTableField* f,
0153 int64_t value);
0154
0155 UPB_API_INLINE void upb_Message_SetBaseFieldMessage(struct upb_Message* msg,
0156 const upb_MiniTableField* f,
0157 upb_Message* value);
0158
0159 UPB_API_INLINE void upb_Message_SetBaseFieldString(struct upb_Message* msg,
0160 const upb_MiniTableField* f,
0161 upb_StringView value);
0162
0163 UPB_API_INLINE void upb_Message_SetBaseFieldUInt32(struct upb_Message* msg,
0164 const upb_MiniTableField* f,
0165 uint32_t value);
0166
0167 UPB_API_INLINE void upb_Message_SetBaseFieldUInt64(struct upb_Message* msg,
0168 const upb_MiniTableField* f,
0169 uint64_t value);
0170
0171
0172 UPB_API_INLINE bool upb_Message_GetExtensionBool(
0173 const upb_Message* msg, const upb_MiniTableExtension* f, bool default_val);
0174
0175 UPB_API_INLINE double upb_Message_GetExtensionDouble(
0176 const upb_Message* msg, const upb_MiniTableExtension* f,
0177 double default_val);
0178
0179 UPB_API_INLINE float upb_Message_GetExtensionFloat(
0180 const upb_Message* msg, const upb_MiniTableExtension* f, float default_val);
0181
0182 UPB_API_INLINE int32_t upb_Message_GetExtensionInt32(
0183 const upb_Message* msg, const upb_MiniTableExtension* f,
0184 int32_t default_val);
0185
0186 UPB_API_INLINE int64_t upb_Message_GetExtensionInt64(
0187 const upb_Message* msg, const upb_MiniTableExtension* f,
0188 int64_t default_val);
0189
0190 UPB_API_INLINE uint32_t upb_Message_GetExtensionUInt32(
0191 const upb_Message* msg, const upb_MiniTableExtension* f,
0192 uint32_t default_val);
0193
0194 UPB_API_INLINE uint64_t upb_Message_GetExtensionUInt64(
0195 const upb_Message* msg, const upb_MiniTableExtension* f,
0196 uint64_t default_val);
0197
0198 UPB_API_INLINE upb_StringView upb_Message_GetExtensionString(
0199 const upb_Message* msg, const upb_MiniTableExtension* f,
0200 upb_StringView default_val);
0201
0202 UPB_API_INLINE upb_Message* upb_Message_GetExtensionMessage(
0203 const upb_Message* msg, const upb_MiniTableExtension* f,
0204 struct upb_Message* default_val);
0205
0206 UPB_API_INLINE const upb_Array* upb_Message_GetExtensionArray(
0207 const upb_Message* msg, const upb_MiniTableExtension* f);
0208
0209 UPB_API_INLINE upb_Array* upb_Message_GetExtensionMutableArray(
0210 upb_Message* msg, const upb_MiniTableExtension* f);
0211
0212
0213
0214 UPB_API_INLINE bool upb_Message_SetExtension(upb_Message* msg,
0215 const upb_MiniTableExtension* e,
0216 const void* value, upb_Arena* a);
0217
0218 UPB_API_INLINE bool upb_Message_SetExtensionMessage(
0219 struct upb_Message* msg, const upb_MiniTableExtension* e,
0220 struct upb_Message* value, upb_Arena* a);
0221
0222 UPB_API_INLINE bool upb_Message_SetExtensionBool(
0223 struct upb_Message* msg, const upb_MiniTableExtension* e, bool value,
0224 upb_Arena* a);
0225
0226 UPB_API_INLINE bool upb_Message_SetExtensionDouble(
0227 struct upb_Message* msg, const upb_MiniTableExtension* e, double value,
0228 upb_Arena* a);
0229
0230 UPB_API_INLINE bool upb_Message_SetExtensionFloat(
0231 struct upb_Message* msg, const upb_MiniTableExtension* e, float value,
0232 upb_Arena* a);
0233
0234 UPB_API_INLINE bool upb_Message_SetExtensionInt32(
0235 struct upb_Message* msg, const upb_MiniTableExtension* e, int32_t value,
0236 upb_Arena* a);
0237
0238 UPB_API_INLINE bool upb_Message_SetExtensionInt64(
0239 struct upb_Message* msg, const upb_MiniTableExtension* e, int64_t value,
0240 upb_Arena* a);
0241
0242 UPB_API_INLINE bool upb_Message_SetExtensionString(
0243 struct upb_Message* msg, const upb_MiniTableExtension* e,
0244 upb_StringView value, upb_Arena* a);
0245
0246 UPB_API_INLINE bool upb_Message_SetExtensionUInt32(
0247 struct upb_Message* msg, const upb_MiniTableExtension* e, uint32_t value,
0248 upb_Arena* a);
0249
0250 UPB_API_INLINE bool upb_Message_SetExtensionUInt64(
0251 struct upb_Message* msg, const upb_MiniTableExtension* e, uint64_t value,
0252 upb_Arena* a);
0253
0254
0255
0256 UPB_API_INLINE bool upb_Message_SetBool(upb_Message* msg,
0257 const upb_MiniTableField* f, bool value,
0258 upb_Arena* a);
0259
0260 UPB_API_INLINE bool upb_Message_SetDouble(upb_Message* msg,
0261 const upb_MiniTableField* f,
0262 double value, upb_Arena* a);
0263
0264 UPB_API_INLINE bool upb_Message_SetFloat(upb_Message* msg,
0265 const upb_MiniTableField* f,
0266 float value, upb_Arena* a);
0267
0268 UPB_API_INLINE bool upb_Message_SetInt32(upb_Message* msg,
0269 const upb_MiniTableField* f,
0270 int32_t value, upb_Arena* a);
0271
0272 UPB_API_INLINE bool upb_Message_SetInt64(upb_Message* msg,
0273 const upb_MiniTableField* f,
0274 int64_t value, upb_Arena* a);
0275
0276
0277
0278 UPB_API_INLINE void upb_Message_SetMessage(upb_Message* msg,
0279 const upb_MiniTableField* f,
0280 upb_Message* value);
0281
0282 UPB_API_INLINE bool upb_Message_SetString(upb_Message* msg,
0283 const upb_MiniTableField* f,
0284 upb_StringView value, upb_Arena* a);
0285
0286 UPB_API_INLINE bool upb_Message_SetUInt32(upb_Message* msg,
0287 const upb_MiniTableField* f,
0288 uint32_t value, upb_Arena* a);
0289
0290 UPB_API_INLINE bool upb_Message_SetUInt64(upb_Message* msg,
0291 const upb_MiniTableField* f,
0292 uint64_t value, upb_Arena* a);
0293
0294
0295
0296 UPB_API_INLINE void* upb_Message_ResizeArrayUninitialized(
0297 upb_Message* msg, const upb_MiniTableField* f, size_t size,
0298 upb_Arena* arena);
0299
0300 UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(
0301 const upb_Message* message, const upb_MiniTableField* oneof_field);
0302
0303
0304
0305 UPB_API_INLINE const upb_MiniTableField* upb_Message_WhichOneof(
0306 const upb_Message* msg, const upb_MiniTable* m,
0307 const upb_MiniTableField* f);
0308
0309
0310 bool upb_Message_SetMapEntry(upb_Map* map, const upb_MiniTable* mini_table,
0311 const upb_MiniTableField* field,
0312 upb_Message* map_entry_message, upb_Arena* arena);
0313
0314 #ifdef __cplusplus
0315 }
0316 #endif
0317
0318 #include "upb/port/undef.inc"
0319
0320 #endif