File indexing completed on 2025-01-18 10:13:17
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef UPB_MESSAGE_ARRAY_H_
0009 #define UPB_MESSAGE_ARRAY_H_
0010
0011 #include <stddef.h>
0012
0013 #include "upb/base/descriptor_constants.h"
0014 #include "upb/mem/arena.h"
0015 #include "upb/message/internal/array.h"
0016 #include "upb/message/value.h"
0017 #include "upb/mini_table/field.h"
0018 #include "upb/mini_table/message.h"
0019
0020
0021 #include "upb/port/def.inc"
0022
0023 typedef struct upb_Array upb_Array;
0024
0025 #ifdef __cplusplus
0026 extern "C" {
0027 #endif
0028
0029
0030 UPB_API upb_Array* upb_Array_New(upb_Arena* a, upb_CType type);
0031
0032
0033 UPB_API_INLINE size_t upb_Array_Size(const upb_Array* arr);
0034
0035
0036 UPB_API upb_MessageValue upb_Array_Get(const upb_Array* arr, size_t i);
0037
0038
0039
0040 UPB_API upb_MutableMessageValue upb_Array_GetMutable(upb_Array* arr, size_t i);
0041
0042
0043 UPB_API void upb_Array_Set(upb_Array* arr, size_t i, upb_MessageValue val);
0044
0045
0046 UPB_API bool upb_Array_Append(upb_Array* array, upb_MessageValue val,
0047 upb_Arena* arena);
0048
0049
0050
0051 UPB_API void upb_Array_Move(upb_Array* array, size_t dst_idx, size_t src_idx,
0052 size_t count);
0053
0054
0055
0056
0057
0058 UPB_API bool upb_Array_Insert(upb_Array* array, size_t i, size_t count,
0059 upb_Arena* arena);
0060
0061
0062
0063
0064 UPB_API void upb_Array_Delete(upb_Array* array, size_t i, size_t count);
0065
0066
0067 UPB_API_INLINE bool upb_Array_Reserve(struct upb_Array* array, size_t size,
0068 upb_Arena* arena);
0069
0070
0071
0072 UPB_API bool upb_Array_Resize(upb_Array* array, size_t size, upb_Arena* arena);
0073
0074
0075 UPB_API_INLINE const void* upb_Array_DataPtr(const upb_Array* arr);
0076
0077
0078 UPB_API_INLINE void* upb_Array_MutableDataPtr(upb_Array* arr);
0079
0080
0081
0082
0083 UPB_API void upb_Array_Freeze(upb_Array* arr, const upb_MiniTable* m);
0084
0085
0086 UPB_API_INLINE bool upb_Array_IsFrozen(const upb_Array* arr);
0087
0088 #ifdef __cplusplus
0089 }
0090 #endif
0091
0092 #include "upb/port/undef.inc"
0093
0094 #endif