xref: /aosp_15_r20/external/cronet/third_party/protobuf/objectivec/GPBUtilities.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Protocol Buffers - Google's data interchange format
2*6777b538SAndroid Build Coastguard Worker // Copyright 2008 Google Inc.  All rights reserved.
3*6777b538SAndroid Build Coastguard Worker // https://developers.google.com/protocol-buffers/
4*6777b538SAndroid Build Coastguard Worker //
5*6777b538SAndroid Build Coastguard Worker // Redistribution and use in source and binary forms, with or without
6*6777b538SAndroid Build Coastguard Worker // modification, are permitted provided that the following conditions are
7*6777b538SAndroid Build Coastguard Worker // met:
8*6777b538SAndroid Build Coastguard Worker //
9*6777b538SAndroid Build Coastguard Worker //     * Redistributions of source code must retain the above copyright
10*6777b538SAndroid Build Coastguard Worker // notice, this list of conditions and the following disclaimer.
11*6777b538SAndroid Build Coastguard Worker //     * Redistributions in binary form must reproduce the above
12*6777b538SAndroid Build Coastguard Worker // copyright notice, this list of conditions and the following disclaimer
13*6777b538SAndroid Build Coastguard Worker // in the documentation and/or other materials provided with the
14*6777b538SAndroid Build Coastguard Worker // distribution.
15*6777b538SAndroid Build Coastguard Worker //     * Neither the name of Google Inc. nor the names of its
16*6777b538SAndroid Build Coastguard Worker // contributors may be used to endorse or promote products derived from
17*6777b538SAndroid Build Coastguard Worker // this software without specific prior written permission.
18*6777b538SAndroid Build Coastguard Worker //
19*6777b538SAndroid Build Coastguard Worker // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20*6777b538SAndroid Build Coastguard Worker // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21*6777b538SAndroid Build Coastguard Worker // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22*6777b538SAndroid Build Coastguard Worker // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23*6777b538SAndroid Build Coastguard Worker // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24*6777b538SAndroid Build Coastguard Worker // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25*6777b538SAndroid Build Coastguard Worker // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26*6777b538SAndroid Build Coastguard Worker // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27*6777b538SAndroid Build Coastguard Worker // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28*6777b538SAndroid Build Coastguard Worker // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29*6777b538SAndroid Build Coastguard Worker // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30*6777b538SAndroid Build Coastguard Worker 
31*6777b538SAndroid Build Coastguard Worker #import <Foundation/Foundation.h>
32*6777b538SAndroid Build Coastguard Worker 
33*6777b538SAndroid Build Coastguard Worker #import "GPBArray.h"
34*6777b538SAndroid Build Coastguard Worker #import "GPBMessage.h"
35*6777b538SAndroid Build Coastguard Worker #import "GPBRuntimeTypes.h"
36*6777b538SAndroid Build Coastguard Worker 
37*6777b538SAndroid Build Coastguard Worker @class GPBOneofDescriptor;
38*6777b538SAndroid Build Coastguard Worker 
39*6777b538SAndroid Build Coastguard Worker CF_EXTERN_C_BEGIN
40*6777b538SAndroid Build Coastguard Worker 
41*6777b538SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_BEGIN
42*6777b538SAndroid Build Coastguard Worker 
43*6777b538SAndroid Build Coastguard Worker /**
44*6777b538SAndroid Build Coastguard Worker  * Generates a string that should be a valid "TextFormat" for the C++ version
45*6777b538SAndroid Build Coastguard Worker  * of Protocol Buffers.
46*6777b538SAndroid Build Coastguard Worker  *
47*6777b538SAndroid Build Coastguard Worker  * @param message    The message to generate from.
48*6777b538SAndroid Build Coastguard Worker  * @param lineIndent A string to use as the prefix for all lines generated. Can
49*6777b538SAndroid Build Coastguard Worker  *                   be nil if no extra indent is needed.
50*6777b538SAndroid Build Coastguard Worker  *
51*6777b538SAndroid Build Coastguard Worker  * @return An NSString with the TextFormat of the message.
52*6777b538SAndroid Build Coastguard Worker  **/
53*6777b538SAndroid Build Coastguard Worker NSString *GPBTextFormatForMessage(GPBMessage *message,
54*6777b538SAndroid Build Coastguard Worker                                   NSString * __nullable lineIndent);
55*6777b538SAndroid Build Coastguard Worker 
56*6777b538SAndroid Build Coastguard Worker /**
57*6777b538SAndroid Build Coastguard Worker  * Generates a string that should be a valid "TextFormat" for the C++ version
58*6777b538SAndroid Build Coastguard Worker  * of Protocol Buffers.
59*6777b538SAndroid Build Coastguard Worker  *
60*6777b538SAndroid Build Coastguard Worker  * @param unknownSet The unknown field set to generate from.
61*6777b538SAndroid Build Coastguard Worker  * @param lineIndent A string to use as the prefix for all lines generated. Can
62*6777b538SAndroid Build Coastguard Worker  *                   be nil if no extra indent is needed.
63*6777b538SAndroid Build Coastguard Worker  *
64*6777b538SAndroid Build Coastguard Worker  * @return An NSString with the TextFormat of the unknown field set.
65*6777b538SAndroid Build Coastguard Worker  **/
66*6777b538SAndroid Build Coastguard Worker NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknownSet,
67*6777b538SAndroid Build Coastguard Worker                                           NSString * __nullable lineIndent);
68*6777b538SAndroid Build Coastguard Worker 
69*6777b538SAndroid Build Coastguard Worker /**
70*6777b538SAndroid Build Coastguard Worker  * Checks if the given field number is set on a message.
71*6777b538SAndroid Build Coastguard Worker  *
72*6777b538SAndroid Build Coastguard Worker  * @param self        The message to check.
73*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number to check.
74*6777b538SAndroid Build Coastguard Worker  *
75*6777b538SAndroid Build Coastguard Worker  * @return YES if the field number is set on the given message.
76*6777b538SAndroid Build Coastguard Worker  **/
77*6777b538SAndroid Build Coastguard Worker BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber);
78*6777b538SAndroid Build Coastguard Worker 
79*6777b538SAndroid Build Coastguard Worker /**
80*6777b538SAndroid Build Coastguard Worker  * Checks if the given field is set on a message.
81*6777b538SAndroid Build Coastguard Worker  *
82*6777b538SAndroid Build Coastguard Worker  * @param self  The message to check.
83*6777b538SAndroid Build Coastguard Worker  * @param field The field to check.
84*6777b538SAndroid Build Coastguard Worker  *
85*6777b538SAndroid Build Coastguard Worker  * @return YES if the field is set on the given message.
86*6777b538SAndroid Build Coastguard Worker  **/
87*6777b538SAndroid Build Coastguard Worker BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field);
88*6777b538SAndroid Build Coastguard Worker 
89*6777b538SAndroid Build Coastguard Worker /**
90*6777b538SAndroid Build Coastguard Worker  * Clears the given field for the given message.
91*6777b538SAndroid Build Coastguard Worker  *
92*6777b538SAndroid Build Coastguard Worker  * @param self  The message for which to clear the field.
93*6777b538SAndroid Build Coastguard Worker  * @param field The field to clear.
94*6777b538SAndroid Build Coastguard Worker  **/
95*6777b538SAndroid Build Coastguard Worker void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field);
96*6777b538SAndroid Build Coastguard Worker 
97*6777b538SAndroid Build Coastguard Worker /**
98*6777b538SAndroid Build Coastguard Worker  * Clears the given oneof field for the given message.
99*6777b538SAndroid Build Coastguard Worker  *
100*6777b538SAndroid Build Coastguard Worker  * @param self  The message for which to clear the field.
101*6777b538SAndroid Build Coastguard Worker  * @param oneof The oneof to clear.
102*6777b538SAndroid Build Coastguard Worker  **/
103*6777b538SAndroid Build Coastguard Worker void GPBClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof);
104*6777b538SAndroid Build Coastguard Worker 
105*6777b538SAndroid Build Coastguard Worker //%PDDM-EXPAND GPB_ACCESSORS()
106*6777b538SAndroid Build Coastguard Worker // This block of code is generated, do not edit it directly.
107*6777b538SAndroid Build Coastguard Worker // clang-format off
108*6777b538SAndroid Build Coastguard Worker 
109*6777b538SAndroid Build Coastguard Worker 
110*6777b538SAndroid Build Coastguard Worker //
111*6777b538SAndroid Build Coastguard Worker // Get/Set a given field from/to a message.
112*6777b538SAndroid Build Coastguard Worker //
113*6777b538SAndroid Build Coastguard Worker 
114*6777b538SAndroid Build Coastguard Worker // Single Fields
115*6777b538SAndroid Build Coastguard Worker 
116*6777b538SAndroid Build Coastguard Worker /**
117*6777b538SAndroid Build Coastguard Worker  * Gets the value of a bytes field.
118*6777b538SAndroid Build Coastguard Worker  *
119*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
120*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
121*6777b538SAndroid Build Coastguard Worker  **/
122*6777b538SAndroid Build Coastguard Worker NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field);
123*6777b538SAndroid Build Coastguard Worker 
124*6777b538SAndroid Build Coastguard Worker /**
125*6777b538SAndroid Build Coastguard Worker  * Sets the value of a bytes field.
126*6777b538SAndroid Build Coastguard Worker  *
127*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
128*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
129*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
130*6777b538SAndroid Build Coastguard Worker  **/
131*6777b538SAndroid Build Coastguard Worker void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData *value);
132*6777b538SAndroid Build Coastguard Worker 
133*6777b538SAndroid Build Coastguard Worker /**
134*6777b538SAndroid Build Coastguard Worker  * Gets the value of a string field.
135*6777b538SAndroid Build Coastguard Worker  *
136*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
137*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
138*6777b538SAndroid Build Coastguard Worker  **/
139*6777b538SAndroid Build Coastguard Worker NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field);
140*6777b538SAndroid Build Coastguard Worker 
141*6777b538SAndroid Build Coastguard Worker /**
142*6777b538SAndroid Build Coastguard Worker  * Sets the value of a string field.
143*6777b538SAndroid Build Coastguard Worker  *
144*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
145*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
146*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
147*6777b538SAndroid Build Coastguard Worker  **/
148*6777b538SAndroid Build Coastguard Worker void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSString *value);
149*6777b538SAndroid Build Coastguard Worker 
150*6777b538SAndroid Build Coastguard Worker /**
151*6777b538SAndroid Build Coastguard Worker  * Gets the value of a message field.
152*6777b538SAndroid Build Coastguard Worker  *
153*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
154*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
155*6777b538SAndroid Build Coastguard Worker  **/
156*6777b538SAndroid Build Coastguard Worker GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field);
157*6777b538SAndroid Build Coastguard Worker 
158*6777b538SAndroid Build Coastguard Worker /**
159*6777b538SAndroid Build Coastguard Worker  * Sets the value of a message field.
160*6777b538SAndroid Build Coastguard Worker  *
161*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
162*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
163*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
164*6777b538SAndroid Build Coastguard Worker  **/
165*6777b538SAndroid Build Coastguard Worker void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
166*6777b538SAndroid Build Coastguard Worker 
167*6777b538SAndroid Build Coastguard Worker /**
168*6777b538SAndroid Build Coastguard Worker  * Gets the value of a group field.
169*6777b538SAndroid Build Coastguard Worker  *
170*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
171*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
172*6777b538SAndroid Build Coastguard Worker  **/
173*6777b538SAndroid Build Coastguard Worker GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field);
174*6777b538SAndroid Build Coastguard Worker 
175*6777b538SAndroid Build Coastguard Worker /**
176*6777b538SAndroid Build Coastguard Worker  * Sets the value of a group field.
177*6777b538SAndroid Build Coastguard Worker  *
178*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
179*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
180*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
181*6777b538SAndroid Build Coastguard Worker  **/
182*6777b538SAndroid Build Coastguard Worker void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
183*6777b538SAndroid Build Coastguard Worker 
184*6777b538SAndroid Build Coastguard Worker /**
185*6777b538SAndroid Build Coastguard Worker  * Gets the value of a bool field.
186*6777b538SAndroid Build Coastguard Worker  *
187*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
188*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
189*6777b538SAndroid Build Coastguard Worker  **/
190*6777b538SAndroid Build Coastguard Worker BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field);
191*6777b538SAndroid Build Coastguard Worker 
192*6777b538SAndroid Build Coastguard Worker /**
193*6777b538SAndroid Build Coastguard Worker  * Sets the value of a bool field.
194*6777b538SAndroid Build Coastguard Worker  *
195*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
196*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
197*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
198*6777b538SAndroid Build Coastguard Worker  **/
199*6777b538SAndroid Build Coastguard Worker void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL value);
200*6777b538SAndroid Build Coastguard Worker 
201*6777b538SAndroid Build Coastguard Worker /**
202*6777b538SAndroid Build Coastguard Worker  * Gets the value of an int32 field.
203*6777b538SAndroid Build Coastguard Worker  *
204*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
205*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
206*6777b538SAndroid Build Coastguard Worker  **/
207*6777b538SAndroid Build Coastguard Worker int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
208*6777b538SAndroid Build Coastguard Worker 
209*6777b538SAndroid Build Coastguard Worker /**
210*6777b538SAndroid Build Coastguard Worker  * Sets the value of an int32 field.
211*6777b538SAndroid Build Coastguard Worker  *
212*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
213*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
214*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
215*6777b538SAndroid Build Coastguard Worker  **/
216*6777b538SAndroid Build Coastguard Worker void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_t value);
217*6777b538SAndroid Build Coastguard Worker 
218*6777b538SAndroid Build Coastguard Worker /**
219*6777b538SAndroid Build Coastguard Worker  * Gets the value of an uint32 field.
220*6777b538SAndroid Build Coastguard Worker  *
221*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
222*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
223*6777b538SAndroid Build Coastguard Worker  **/
224*6777b538SAndroid Build Coastguard Worker uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
225*6777b538SAndroid Build Coastguard Worker 
226*6777b538SAndroid Build Coastguard Worker /**
227*6777b538SAndroid Build Coastguard Worker  * Sets the value of an uint32 field.
228*6777b538SAndroid Build Coastguard Worker  *
229*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
230*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
231*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
232*6777b538SAndroid Build Coastguard Worker  **/
233*6777b538SAndroid Build Coastguard Worker void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint32_t value);
234*6777b538SAndroid Build Coastguard Worker 
235*6777b538SAndroid Build Coastguard Worker /**
236*6777b538SAndroid Build Coastguard Worker  * Gets the value of an int64 field.
237*6777b538SAndroid Build Coastguard Worker  *
238*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
239*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
240*6777b538SAndroid Build Coastguard Worker  **/
241*6777b538SAndroid Build Coastguard Worker int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
242*6777b538SAndroid Build Coastguard Worker 
243*6777b538SAndroid Build Coastguard Worker /**
244*6777b538SAndroid Build Coastguard Worker  * Sets the value of an int64 field.
245*6777b538SAndroid Build Coastguard Worker  *
246*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
247*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
248*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
249*6777b538SAndroid Build Coastguard Worker  **/
250*6777b538SAndroid Build Coastguard Worker void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_t value);
251*6777b538SAndroid Build Coastguard Worker 
252*6777b538SAndroid Build Coastguard Worker /**
253*6777b538SAndroid Build Coastguard Worker  * Gets the value of an uint64 field.
254*6777b538SAndroid Build Coastguard Worker  *
255*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
256*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
257*6777b538SAndroid Build Coastguard Worker  **/
258*6777b538SAndroid Build Coastguard Worker uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
259*6777b538SAndroid Build Coastguard Worker 
260*6777b538SAndroid Build Coastguard Worker /**
261*6777b538SAndroid Build Coastguard Worker  * Sets the value of an uint64 field.
262*6777b538SAndroid Build Coastguard Worker  *
263*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
264*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
265*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
266*6777b538SAndroid Build Coastguard Worker  **/
267*6777b538SAndroid Build Coastguard Worker void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint64_t value);
268*6777b538SAndroid Build Coastguard Worker 
269*6777b538SAndroid Build Coastguard Worker /**
270*6777b538SAndroid Build Coastguard Worker  * Gets the value of a float field.
271*6777b538SAndroid Build Coastguard Worker  *
272*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
273*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
274*6777b538SAndroid Build Coastguard Worker  **/
275*6777b538SAndroid Build Coastguard Worker float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field);
276*6777b538SAndroid Build Coastguard Worker 
277*6777b538SAndroid Build Coastguard Worker /**
278*6777b538SAndroid Build Coastguard Worker  * Sets the value of a float field.
279*6777b538SAndroid Build Coastguard Worker  *
280*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
281*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
282*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
283*6777b538SAndroid Build Coastguard Worker  **/
284*6777b538SAndroid Build Coastguard Worker void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float value);
285*6777b538SAndroid Build Coastguard Worker 
286*6777b538SAndroid Build Coastguard Worker /**
287*6777b538SAndroid Build Coastguard Worker  * Gets the value of a double field.
288*6777b538SAndroid Build Coastguard Worker  *
289*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
290*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
291*6777b538SAndroid Build Coastguard Worker  **/
292*6777b538SAndroid Build Coastguard Worker double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field);
293*6777b538SAndroid Build Coastguard Worker 
294*6777b538SAndroid Build Coastguard Worker /**
295*6777b538SAndroid Build Coastguard Worker  * Sets the value of a double field.
296*6777b538SAndroid Build Coastguard Worker  *
297*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
298*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
299*6777b538SAndroid Build Coastguard Worker  * @param value The to set in the field.
300*6777b538SAndroid Build Coastguard Worker  **/
301*6777b538SAndroid Build Coastguard Worker void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, double value);
302*6777b538SAndroid Build Coastguard Worker 
303*6777b538SAndroid Build Coastguard Worker /**
304*6777b538SAndroid Build Coastguard Worker  * Gets the given enum field of a message. For proto3, if the value isn't a
305*6777b538SAndroid Build Coastguard Worker  * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
306*6777b538SAndroid Build Coastguard Worker  * GPBGetMessageRawEnumField will bypass the check and return whatever value
307*6777b538SAndroid Build Coastguard Worker  * was set.
308*6777b538SAndroid Build Coastguard Worker  *
309*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
310*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
311*6777b538SAndroid Build Coastguard Worker  *
312*6777b538SAndroid Build Coastguard Worker  * @return The enum value for the given field.
313*6777b538SAndroid Build Coastguard Worker  **/
314*6777b538SAndroid Build Coastguard Worker int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
315*6777b538SAndroid Build Coastguard Worker 
316*6777b538SAndroid Build Coastguard Worker /**
317*6777b538SAndroid Build Coastguard Worker  * Set the given enum field of a message. You can only set values that are
318*6777b538SAndroid Build Coastguard Worker  * members of the enum.
319*6777b538SAndroid Build Coastguard Worker  *
320*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
321*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
322*6777b538SAndroid Build Coastguard Worker  * @param value The enum value to set in the field.
323*6777b538SAndroid Build Coastguard Worker  **/
324*6777b538SAndroid Build Coastguard Worker void GPBSetMessageEnumField(GPBMessage *self,
325*6777b538SAndroid Build Coastguard Worker                             GPBFieldDescriptor *field,
326*6777b538SAndroid Build Coastguard Worker                             int32_t value);
327*6777b538SAndroid Build Coastguard Worker 
328*6777b538SAndroid Build Coastguard Worker /**
329*6777b538SAndroid Build Coastguard Worker  * Get the given enum field of a message. No check is done to ensure the value
330*6777b538SAndroid Build Coastguard Worker  * was defined in the enum.
331*6777b538SAndroid Build Coastguard Worker  *
332*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
333*6777b538SAndroid Build Coastguard Worker  * @param field The field to get.
334*6777b538SAndroid Build Coastguard Worker  *
335*6777b538SAndroid Build Coastguard Worker  * @return The raw enum value for the given field.
336*6777b538SAndroid Build Coastguard Worker  **/
337*6777b538SAndroid Build Coastguard Worker int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
338*6777b538SAndroid Build Coastguard Worker 
339*6777b538SAndroid Build Coastguard Worker /**
340*6777b538SAndroid Build Coastguard Worker  * Set the given enum field of a message. You can set the value to anything,
341*6777b538SAndroid Build Coastguard Worker  * even a value that is not a member of the enum.
342*6777b538SAndroid Build Coastguard Worker  *
343*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
344*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
345*6777b538SAndroid Build Coastguard Worker  * @param value The raw enum value to set in the field.
346*6777b538SAndroid Build Coastguard Worker  **/
347*6777b538SAndroid Build Coastguard Worker void GPBSetMessageRawEnumField(GPBMessage *self,
348*6777b538SAndroid Build Coastguard Worker                                GPBFieldDescriptor *field,
349*6777b538SAndroid Build Coastguard Worker                                int32_t value);
350*6777b538SAndroid Build Coastguard Worker 
351*6777b538SAndroid Build Coastguard Worker // Repeated Fields
352*6777b538SAndroid Build Coastguard Worker 
353*6777b538SAndroid Build Coastguard Worker /**
354*6777b538SAndroid Build Coastguard Worker  * Gets the value of a repeated field.
355*6777b538SAndroid Build Coastguard Worker  *
356*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
357*6777b538SAndroid Build Coastguard Worker  * @param field The repeated field to get.
358*6777b538SAndroid Build Coastguard Worker  *
359*6777b538SAndroid Build Coastguard Worker  * @return A GPB*Array or an NSMutableArray based on the field's type.
360*6777b538SAndroid Build Coastguard Worker  **/
361*6777b538SAndroid Build Coastguard Worker id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
362*6777b538SAndroid Build Coastguard Worker 
363*6777b538SAndroid Build Coastguard Worker /**
364*6777b538SAndroid Build Coastguard Worker  * Sets the value of a repeated field.
365*6777b538SAndroid Build Coastguard Worker  *
366*6777b538SAndroid Build Coastguard Worker  * @param self  The message into which to set the field.
367*6777b538SAndroid Build Coastguard Worker  * @param field The field to set.
368*6777b538SAndroid Build Coastguard Worker  * @param array A GPB*Array or NSMutableArray based on the field's type.
369*6777b538SAndroid Build Coastguard Worker  **/
370*6777b538SAndroid Build Coastguard Worker void GPBSetMessageRepeatedField(GPBMessage *self,
371*6777b538SAndroid Build Coastguard Worker                                 GPBFieldDescriptor *field,
372*6777b538SAndroid Build Coastguard Worker                                 id array);
373*6777b538SAndroid Build Coastguard Worker 
374*6777b538SAndroid Build Coastguard Worker // Map Fields
375*6777b538SAndroid Build Coastguard Worker 
376*6777b538SAndroid Build Coastguard Worker /**
377*6777b538SAndroid Build Coastguard Worker  * Gets the value of a map<> field.
378*6777b538SAndroid Build Coastguard Worker  *
379*6777b538SAndroid Build Coastguard Worker  * @param self  The message from which to get the field.
380*6777b538SAndroid Build Coastguard Worker  * @param field The repeated field to get.
381*6777b538SAndroid Build Coastguard Worker  *
382*6777b538SAndroid Build Coastguard Worker  * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
383*6777b538SAndroid Build Coastguard Worker  **/
384*6777b538SAndroid Build Coastguard Worker id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
385*6777b538SAndroid Build Coastguard Worker 
386*6777b538SAndroid Build Coastguard Worker /**
387*6777b538SAndroid Build Coastguard Worker  * Sets the value of a map<> field.
388*6777b538SAndroid Build Coastguard Worker  *
389*6777b538SAndroid Build Coastguard Worker  * @param self       The message into which to set the field.
390*6777b538SAndroid Build Coastguard Worker  * @param field      The field to set.
391*6777b538SAndroid Build Coastguard Worker  * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
392*6777b538SAndroid Build Coastguard Worker  *                   field's type.
393*6777b538SAndroid Build Coastguard Worker  **/
394*6777b538SAndroid Build Coastguard Worker void GPBSetMessageMapField(GPBMessage *self,
395*6777b538SAndroid Build Coastguard Worker                            GPBFieldDescriptor *field,
396*6777b538SAndroid Build Coastguard Worker                            id dictionary);
397*6777b538SAndroid Build Coastguard Worker 
398*6777b538SAndroid Build Coastguard Worker // clang-format on
399*6777b538SAndroid Build Coastguard Worker //%PDDM-EXPAND-END GPB_ACCESSORS()
400*6777b538SAndroid Build Coastguard Worker 
401*6777b538SAndroid Build Coastguard Worker /**
402*6777b538SAndroid Build Coastguard Worker  * Returns an empty NSData to assign to byte fields when you wish to assign them
403*6777b538SAndroid Build Coastguard Worker  * to empty. Prevents allocating a lot of little [NSData data] objects.
404*6777b538SAndroid Build Coastguard Worker  **/
405*6777b538SAndroid Build Coastguard Worker NSData *GPBEmptyNSData(void) __attribute__((pure));
406*6777b538SAndroid Build Coastguard Worker 
407*6777b538SAndroid Build Coastguard Worker /**
408*6777b538SAndroid Build Coastguard Worker  * Drops the `unknownFields` from the given message and from all sub message.
409*6777b538SAndroid Build Coastguard Worker  **/
410*6777b538SAndroid Build Coastguard Worker void GPBMessageDropUnknownFieldsRecursively(GPBMessage *message);
411*6777b538SAndroid Build Coastguard Worker 
412*6777b538SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_END
413*6777b538SAndroid Build Coastguard Worker 
414*6777b538SAndroid Build Coastguard Worker CF_EXTERN_C_END
415*6777b538SAndroid Build Coastguard Worker 
416*6777b538SAndroid Build Coastguard Worker 
417*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE GPB_ACCESSORS()
418*6777b538SAndroid Build Coastguard Worker //%
419*6777b538SAndroid Build Coastguard Worker //%//
420*6777b538SAndroid Build Coastguard Worker //%// Get/Set a given field from/to a message.
421*6777b538SAndroid Build Coastguard Worker //%//
422*6777b538SAndroid Build Coastguard Worker //%
423*6777b538SAndroid Build Coastguard Worker //%// Single Fields
424*6777b538SAndroid Build Coastguard Worker //%
425*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, , *)
426*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE_FULL(String, NSString, , *)
427*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, , *)
428*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, , *)
429*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(Bool, BOOL, )
430*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(Int32, int32_t, n)
431*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(UInt32, uint32_t, n)
432*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(Int64, int64_t, n)
433*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(UInt64, uint64_t, n)
434*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(Float, float, )
435*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE(Double, double, )
436*6777b538SAndroid Build Coastguard Worker //%/**
437*6777b538SAndroid Build Coastguard Worker //% * Gets the given enum field of a message. For proto3, if the value isn't a
438*6777b538SAndroid Build Coastguard Worker //% * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
439*6777b538SAndroid Build Coastguard Worker //% * GPBGetMessageRawEnumField will bypass the check and return whatever value
440*6777b538SAndroid Build Coastguard Worker //% * was set.
441*6777b538SAndroid Build Coastguard Worker //% *
442*6777b538SAndroid Build Coastguard Worker //% * @param self  The message from which to get the field.
443*6777b538SAndroid Build Coastguard Worker //% * @param field The field to get.
444*6777b538SAndroid Build Coastguard Worker //% *
445*6777b538SAndroid Build Coastguard Worker //% * @return The enum value for the given field.
446*6777b538SAndroid Build Coastguard Worker //% **/
447*6777b538SAndroid Build Coastguard Worker //%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
448*6777b538SAndroid Build Coastguard Worker //%
449*6777b538SAndroid Build Coastguard Worker //%/**
450*6777b538SAndroid Build Coastguard Worker //% * Set the given enum field of a message. You can only set values that are
451*6777b538SAndroid Build Coastguard Worker //% * members of the enum.
452*6777b538SAndroid Build Coastguard Worker //% *
453*6777b538SAndroid Build Coastguard Worker //% * @param self  The message into which to set the field.
454*6777b538SAndroid Build Coastguard Worker //% * @param field The field to set.
455*6777b538SAndroid Build Coastguard Worker //% * @param value The enum value to set in the field.
456*6777b538SAndroid Build Coastguard Worker //% **/
457*6777b538SAndroid Build Coastguard Worker //%void GPBSetMessageEnumField(GPBMessage *self,
458*6777b538SAndroid Build Coastguard Worker //%                            GPBFieldDescriptor *field,
459*6777b538SAndroid Build Coastguard Worker //%                            int32_t value);
460*6777b538SAndroid Build Coastguard Worker //%
461*6777b538SAndroid Build Coastguard Worker //%/**
462*6777b538SAndroid Build Coastguard Worker //% * Get the given enum field of a message. No check is done to ensure the value
463*6777b538SAndroid Build Coastguard Worker //% * was defined in the enum.
464*6777b538SAndroid Build Coastguard Worker //% *
465*6777b538SAndroid Build Coastguard Worker //% * @param self  The message from which to get the field.
466*6777b538SAndroid Build Coastguard Worker //% * @param field The field to get.
467*6777b538SAndroid Build Coastguard Worker //% *
468*6777b538SAndroid Build Coastguard Worker //% * @return The raw enum value for the given field.
469*6777b538SAndroid Build Coastguard Worker //% **/
470*6777b538SAndroid Build Coastguard Worker //%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
471*6777b538SAndroid Build Coastguard Worker //%
472*6777b538SAndroid Build Coastguard Worker //%/**
473*6777b538SAndroid Build Coastguard Worker //% * Set the given enum field of a message. You can set the value to anything,
474*6777b538SAndroid Build Coastguard Worker //% * even a value that is not a member of the enum.
475*6777b538SAndroid Build Coastguard Worker //% *
476*6777b538SAndroid Build Coastguard Worker //% * @param self  The message into which to set the field.
477*6777b538SAndroid Build Coastguard Worker //% * @param field The field to set.
478*6777b538SAndroid Build Coastguard Worker //% * @param value The raw enum value to set in the field.
479*6777b538SAndroid Build Coastguard Worker //% **/
480*6777b538SAndroid Build Coastguard Worker //%void GPBSetMessageRawEnumField(GPBMessage *self,
481*6777b538SAndroid Build Coastguard Worker //%                               GPBFieldDescriptor *field,
482*6777b538SAndroid Build Coastguard Worker //%                               int32_t value);
483*6777b538SAndroid Build Coastguard Worker //%
484*6777b538SAndroid Build Coastguard Worker //%// Repeated Fields
485*6777b538SAndroid Build Coastguard Worker //%
486*6777b538SAndroid Build Coastguard Worker //%/**
487*6777b538SAndroid Build Coastguard Worker //% * Gets the value of a repeated field.
488*6777b538SAndroid Build Coastguard Worker //% *
489*6777b538SAndroid Build Coastguard Worker //% * @param self  The message from which to get the field.
490*6777b538SAndroid Build Coastguard Worker //% * @param field The repeated field to get.
491*6777b538SAndroid Build Coastguard Worker //% *
492*6777b538SAndroid Build Coastguard Worker //% * @return A GPB*Array or an NSMutableArray based on the field's type.
493*6777b538SAndroid Build Coastguard Worker //% **/
494*6777b538SAndroid Build Coastguard Worker //%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
495*6777b538SAndroid Build Coastguard Worker //%
496*6777b538SAndroid Build Coastguard Worker //%/**
497*6777b538SAndroid Build Coastguard Worker //% * Sets the value of a repeated field.
498*6777b538SAndroid Build Coastguard Worker //% *
499*6777b538SAndroid Build Coastguard Worker //% * @param self  The message into which to set the field.
500*6777b538SAndroid Build Coastguard Worker //% * @param field The field to set.
501*6777b538SAndroid Build Coastguard Worker //% * @param array A GPB*Array or NSMutableArray based on the field's type.
502*6777b538SAndroid Build Coastguard Worker //% **/
503*6777b538SAndroid Build Coastguard Worker //%void GPBSetMessageRepeatedField(GPBMessage *self,
504*6777b538SAndroid Build Coastguard Worker //%                                GPBFieldDescriptor *field,
505*6777b538SAndroid Build Coastguard Worker //%                                id array);
506*6777b538SAndroid Build Coastguard Worker //%
507*6777b538SAndroid Build Coastguard Worker //%// Map Fields
508*6777b538SAndroid Build Coastguard Worker //%
509*6777b538SAndroid Build Coastguard Worker //%/**
510*6777b538SAndroid Build Coastguard Worker //% * Gets the value of a map<> field.
511*6777b538SAndroid Build Coastguard Worker //% *
512*6777b538SAndroid Build Coastguard Worker //% * @param self  The message from which to get the field.
513*6777b538SAndroid Build Coastguard Worker //% * @param field The repeated field to get.
514*6777b538SAndroid Build Coastguard Worker //% *
515*6777b538SAndroid Build Coastguard Worker //% * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
516*6777b538SAndroid Build Coastguard Worker //% **/
517*6777b538SAndroid Build Coastguard Worker //%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
518*6777b538SAndroid Build Coastguard Worker //%
519*6777b538SAndroid Build Coastguard Worker //%/**
520*6777b538SAndroid Build Coastguard Worker //% * Sets the value of a map<> field.
521*6777b538SAndroid Build Coastguard Worker //% *
522*6777b538SAndroid Build Coastguard Worker //% * @param self       The message into which to set the field.
523*6777b538SAndroid Build Coastguard Worker //% * @param field      The field to set.
524*6777b538SAndroid Build Coastguard Worker //% * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
525*6777b538SAndroid Build Coastguard Worker //% *                   field's type.
526*6777b538SAndroid Build Coastguard Worker //% **/
527*6777b538SAndroid Build Coastguard Worker //%void GPBSetMessageMapField(GPBMessage *self,
528*6777b538SAndroid Build Coastguard Worker //%                           GPBFieldDescriptor *field,
529*6777b538SAndroid Build Coastguard Worker //%                           id dictionary);
530*6777b538SAndroid Build Coastguard Worker //%
531*6777b538SAndroid Build Coastguard Worker 
532*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE, AN)
533*6777b538SAndroid Build Coastguard Worker //%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, )
534*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, TisP)
535*6777b538SAndroid Build Coastguard Worker //%/**
536*6777b538SAndroid Build Coastguard Worker //% * Gets the value of a##AN NAME$L field.
537*6777b538SAndroid Build Coastguard Worker //% *
538*6777b538SAndroid Build Coastguard Worker //% * @param self  The message from which to get the field.
539*6777b538SAndroid Build Coastguard Worker //% * @param field The field to get.
540*6777b538SAndroid Build Coastguard Worker //% **/
541*6777b538SAndroid Build Coastguard Worker //%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field);
542*6777b538SAndroid Build Coastguard Worker //%
543*6777b538SAndroid Build Coastguard Worker //%/**
544*6777b538SAndroid Build Coastguard Worker //% * Sets the value of a##AN NAME$L field.
545*6777b538SAndroid Build Coastguard Worker //% *
546*6777b538SAndroid Build Coastguard Worker //% * @param self  The message into which to set the field.
547*6777b538SAndroid Build Coastguard Worker //% * @param field The field to set.
548*6777b538SAndroid Build Coastguard Worker //% * @param value The to set in the field.
549*6777b538SAndroid Build Coastguard Worker //% **/
550*6777b538SAndroid Build Coastguard Worker //%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field, TYPE TisP##value);
551*6777b538SAndroid Build Coastguard Worker //%
552