xref: /aosp_15_r20/external/cronet/third_party/protobuf/objectivec/GPBCodedOutputStream.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 "GPBRuntimeTypes.h"
34*6777b538SAndroid Build Coastguard Worker #import "GPBWireFormat.h"
35*6777b538SAndroid Build Coastguard Worker 
36*6777b538SAndroid Build Coastguard Worker @class GPBBoolArray;
37*6777b538SAndroid Build Coastguard Worker @class GPBDoubleArray;
38*6777b538SAndroid Build Coastguard Worker @class GPBEnumArray;
39*6777b538SAndroid Build Coastguard Worker @class GPBFloatArray;
40*6777b538SAndroid Build Coastguard Worker @class GPBMessage;
41*6777b538SAndroid Build Coastguard Worker @class GPBInt32Array;
42*6777b538SAndroid Build Coastguard Worker @class GPBInt64Array;
43*6777b538SAndroid Build Coastguard Worker @class GPBUInt32Array;
44*6777b538SAndroid Build Coastguard Worker @class GPBUInt64Array;
45*6777b538SAndroid Build Coastguard Worker @class GPBUnknownFieldSet;
46*6777b538SAndroid Build Coastguard Worker 
47*6777b538SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_BEGIN
48*6777b538SAndroid Build Coastguard Worker 
49*6777b538SAndroid Build Coastguard Worker /**
50*6777b538SAndroid Build Coastguard Worker  * @c GPBCodedOutputStream exception names.
51*6777b538SAndroid Build Coastguard Worker  **/
52*6777b538SAndroid Build Coastguard Worker extern NSString *const GPBCodedOutputStreamException_OutOfSpace;
53*6777b538SAndroid Build Coastguard Worker extern NSString *const GPBCodedOutputStreamException_WriteFailed;
54*6777b538SAndroid Build Coastguard Worker 
55*6777b538SAndroid Build Coastguard Worker /**
56*6777b538SAndroid Build Coastguard Worker  * Writes out protocol message fields.
57*6777b538SAndroid Build Coastguard Worker  *
58*6777b538SAndroid Build Coastguard Worker  * The common uses of protocol buffers shouldn't need to use this class.
59*6777b538SAndroid Build Coastguard Worker  * GPBMessage's provide a -data method that will serialize the message for you.
60*6777b538SAndroid Build Coastguard Worker  *
61*6777b538SAndroid Build Coastguard Worker  * @note Any -write* api can raise the GPBCodedOutputStreamException_*
62*6777b538SAndroid Build Coastguard Worker  *       exceptions.
63*6777b538SAndroid Build Coastguard Worker  *
64*6777b538SAndroid Build Coastguard Worker  * @note Subclassing of GPBCodedOutputStream is NOT supported.
65*6777b538SAndroid Build Coastguard Worker  **/
66*6777b538SAndroid Build Coastguard Worker @interface GPBCodedOutputStream : NSObject
67*6777b538SAndroid Build Coastguard Worker 
68*6777b538SAndroid Build Coastguard Worker /**
69*6777b538SAndroid Build Coastguard Worker  * Creates a stream to fill in the given data. Data must be sized to fit or
70*6777b538SAndroid Build Coastguard Worker  * an error will be raised when out of space.
71*6777b538SAndroid Build Coastguard Worker  *
72*6777b538SAndroid Build Coastguard Worker  * @param data The data where the stream will be written to.
73*6777b538SAndroid Build Coastguard Worker  *
74*6777b538SAndroid Build Coastguard Worker  * @return A newly instanced GPBCodedOutputStream.
75*6777b538SAndroid Build Coastguard Worker  **/
76*6777b538SAndroid Build Coastguard Worker + (instancetype)streamWithData:(NSMutableData *)data;
77*6777b538SAndroid Build Coastguard Worker 
78*6777b538SAndroid Build Coastguard Worker /**
79*6777b538SAndroid Build Coastguard Worker  * Creates a stream to write into the given NSOutputStream.
80*6777b538SAndroid Build Coastguard Worker  *
81*6777b538SAndroid Build Coastguard Worker  * @param output The output stream where the stream will be written to.
82*6777b538SAndroid Build Coastguard Worker  *
83*6777b538SAndroid Build Coastguard Worker  * @return A newly instanced GPBCodedOutputStream.
84*6777b538SAndroid Build Coastguard Worker  **/
85*6777b538SAndroid Build Coastguard Worker + (instancetype)streamWithOutputStream:(NSOutputStream *)output;
86*6777b538SAndroid Build Coastguard Worker 
87*6777b538SAndroid Build Coastguard Worker /**
88*6777b538SAndroid Build Coastguard Worker  * Initializes a stream to fill in the given data. Data must be sized to fit
89*6777b538SAndroid Build Coastguard Worker  * or an error will be raised when out of space.
90*6777b538SAndroid Build Coastguard Worker  *
91*6777b538SAndroid Build Coastguard Worker  * @param data The data where the stream will be written to.
92*6777b538SAndroid Build Coastguard Worker  *
93*6777b538SAndroid Build Coastguard Worker  * @return A newly initialized GPBCodedOutputStream.
94*6777b538SAndroid Build Coastguard Worker  **/
95*6777b538SAndroid Build Coastguard Worker - (instancetype)initWithData:(NSMutableData *)data;
96*6777b538SAndroid Build Coastguard Worker 
97*6777b538SAndroid Build Coastguard Worker /**
98*6777b538SAndroid Build Coastguard Worker  * Initializes a stream to write into the given @c NSOutputStream.
99*6777b538SAndroid Build Coastguard Worker  *
100*6777b538SAndroid Build Coastguard Worker  * @param output The output stream where the stream will be written to.
101*6777b538SAndroid Build Coastguard Worker  *
102*6777b538SAndroid Build Coastguard Worker  * @return A newly initialized GPBCodedOutputStream.
103*6777b538SAndroid Build Coastguard Worker  **/
104*6777b538SAndroid Build Coastguard Worker - (instancetype)initWithOutputStream:(NSOutputStream *)output;
105*6777b538SAndroid Build Coastguard Worker 
106*6777b538SAndroid Build Coastguard Worker /**
107*6777b538SAndroid Build Coastguard Worker  * Flush any buffered data out.
108*6777b538SAndroid Build Coastguard Worker  **/
109*6777b538SAndroid Build Coastguard Worker - (void)flush;
110*6777b538SAndroid Build Coastguard Worker 
111*6777b538SAndroid Build Coastguard Worker /**
112*6777b538SAndroid Build Coastguard Worker  * Write the raw byte out.
113*6777b538SAndroid Build Coastguard Worker  *
114*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
115*6777b538SAndroid Build Coastguard Worker  **/
116*6777b538SAndroid Build Coastguard Worker - (void)writeRawByte:(uint8_t)value;
117*6777b538SAndroid Build Coastguard Worker 
118*6777b538SAndroid Build Coastguard Worker /**
119*6777b538SAndroid Build Coastguard Worker  * Write the tag for the given field number and wire format.
120*6777b538SAndroid Build Coastguard Worker  *
121*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number.
122*6777b538SAndroid Build Coastguard Worker  * @param format      The wire format the data for the field will be in.
123*6777b538SAndroid Build Coastguard Worker  **/
124*6777b538SAndroid Build Coastguard Worker - (void)writeTag:(uint32_t)fieldNumber format:(GPBWireFormat)format;
125*6777b538SAndroid Build Coastguard Worker 
126*6777b538SAndroid Build Coastguard Worker /**
127*6777b538SAndroid Build Coastguard Worker  * Write a 32bit value out in little endian format.
128*6777b538SAndroid Build Coastguard Worker  *
129*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
130*6777b538SAndroid Build Coastguard Worker  **/
131*6777b538SAndroid Build Coastguard Worker - (void)writeRawLittleEndian32:(int32_t)value;
132*6777b538SAndroid Build Coastguard Worker /**
133*6777b538SAndroid Build Coastguard Worker  * Write a 64bit value out in little endian format.
134*6777b538SAndroid Build Coastguard Worker  *
135*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
136*6777b538SAndroid Build Coastguard Worker  **/
137*6777b538SAndroid Build Coastguard Worker - (void)writeRawLittleEndian64:(int64_t)value;
138*6777b538SAndroid Build Coastguard Worker 
139*6777b538SAndroid Build Coastguard Worker /**
140*6777b538SAndroid Build Coastguard Worker  * Write a 32bit value out in varint format.
141*6777b538SAndroid Build Coastguard Worker  *
142*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
143*6777b538SAndroid Build Coastguard Worker  **/
144*6777b538SAndroid Build Coastguard Worker - (void)writeRawVarint32:(int32_t)value;
145*6777b538SAndroid Build Coastguard Worker /**
146*6777b538SAndroid Build Coastguard Worker  * Write a 64bit value out in varint format.
147*6777b538SAndroid Build Coastguard Worker  *
148*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
149*6777b538SAndroid Build Coastguard Worker  **/
150*6777b538SAndroid Build Coastguard Worker - (void)writeRawVarint64:(int64_t)value;
151*6777b538SAndroid Build Coastguard Worker 
152*6777b538SAndroid Build Coastguard Worker /**
153*6777b538SAndroid Build Coastguard Worker  * Write a size_t out as a 32bit varint value.
154*6777b538SAndroid Build Coastguard Worker  *
155*6777b538SAndroid Build Coastguard Worker  * @note This will truncate 64 bit values to 32.
156*6777b538SAndroid Build Coastguard Worker  *
157*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
158*6777b538SAndroid Build Coastguard Worker  **/
159*6777b538SAndroid Build Coastguard Worker - (void)writeRawVarintSizeTAs32:(size_t)value;
160*6777b538SAndroid Build Coastguard Worker 
161*6777b538SAndroid Build Coastguard Worker /**
162*6777b538SAndroid Build Coastguard Worker  * Writes the contents of an NSData out.
163*6777b538SAndroid Build Coastguard Worker  *
164*6777b538SAndroid Build Coastguard Worker  * @param data The data to write out.
165*6777b538SAndroid Build Coastguard Worker  **/
166*6777b538SAndroid Build Coastguard Worker - (void)writeRawData:(NSData *)data;
167*6777b538SAndroid Build Coastguard Worker /**
168*6777b538SAndroid Build Coastguard Worker  * Writes out the given data.
169*6777b538SAndroid Build Coastguard Worker  *
170*6777b538SAndroid Build Coastguard Worker  * @param data   The data blob to write out.
171*6777b538SAndroid Build Coastguard Worker  * @param offset The offset into the blob to start writing out.
172*6777b538SAndroid Build Coastguard Worker  * @param length The number of bytes from the blob to write out.
173*6777b538SAndroid Build Coastguard Worker  **/
174*6777b538SAndroid Build Coastguard Worker - (void)writeRawPtr:(const void *)data
175*6777b538SAndroid Build Coastguard Worker              offset:(size_t)offset
176*6777b538SAndroid Build Coastguard Worker              length:(size_t)length;
177*6777b538SAndroid Build Coastguard Worker 
178*6777b538SAndroid Build Coastguard Worker //%PDDM-EXPAND _WRITE_DECLS()
179*6777b538SAndroid Build Coastguard Worker // This block of code is generated, do not edit it directly.
180*6777b538SAndroid Build Coastguard Worker // clang-format off
181*6777b538SAndroid Build Coastguard Worker 
182*6777b538SAndroid Build Coastguard Worker /**
183*6777b538SAndroid Build Coastguard Worker  * Write a double for the given field number.
184*6777b538SAndroid Build Coastguard Worker  *
185*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
186*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
187*6777b538SAndroid Build Coastguard Worker  **/
188*6777b538SAndroid Build Coastguard Worker - (void)writeDouble:(int32_t)fieldNumber value:(double)value;
189*6777b538SAndroid Build Coastguard Worker /**
190*6777b538SAndroid Build Coastguard Worker  * Write a packed array of double for the given field number.
191*6777b538SAndroid Build Coastguard Worker  *
192*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
193*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
194*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
195*6777b538SAndroid Build Coastguard Worker  **/
196*6777b538SAndroid Build Coastguard Worker - (void)writeDoubleArray:(int32_t)fieldNumber
197*6777b538SAndroid Build Coastguard Worker                   values:(GPBDoubleArray *)values
198*6777b538SAndroid Build Coastguard Worker                      tag:(uint32_t)tag;
199*6777b538SAndroid Build Coastguard Worker /**
200*6777b538SAndroid Build Coastguard Worker  * Write a double without any tag.
201*6777b538SAndroid Build Coastguard Worker  *
202*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
203*6777b538SAndroid Build Coastguard Worker  **/
204*6777b538SAndroid Build Coastguard Worker - (void)writeDoubleNoTag:(double)value;
205*6777b538SAndroid Build Coastguard Worker 
206*6777b538SAndroid Build Coastguard Worker /**
207*6777b538SAndroid Build Coastguard Worker  * Write a float for the given field number.
208*6777b538SAndroid Build Coastguard Worker  *
209*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
210*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
211*6777b538SAndroid Build Coastguard Worker  **/
212*6777b538SAndroid Build Coastguard Worker - (void)writeFloat:(int32_t)fieldNumber value:(float)value;
213*6777b538SAndroid Build Coastguard Worker /**
214*6777b538SAndroid Build Coastguard Worker  * Write a packed array of float for the given field number.
215*6777b538SAndroid Build Coastguard Worker  *
216*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
217*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
218*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
219*6777b538SAndroid Build Coastguard Worker  **/
220*6777b538SAndroid Build Coastguard Worker - (void)writeFloatArray:(int32_t)fieldNumber
221*6777b538SAndroid Build Coastguard Worker                  values:(GPBFloatArray *)values
222*6777b538SAndroid Build Coastguard Worker                     tag:(uint32_t)tag;
223*6777b538SAndroid Build Coastguard Worker /**
224*6777b538SAndroid Build Coastguard Worker  * Write a float without any tag.
225*6777b538SAndroid Build Coastguard Worker  *
226*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
227*6777b538SAndroid Build Coastguard Worker  **/
228*6777b538SAndroid Build Coastguard Worker - (void)writeFloatNoTag:(float)value;
229*6777b538SAndroid Build Coastguard Worker 
230*6777b538SAndroid Build Coastguard Worker /**
231*6777b538SAndroid Build Coastguard Worker  * Write a uint64_t for the given field number.
232*6777b538SAndroid Build Coastguard Worker  *
233*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
234*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
235*6777b538SAndroid Build Coastguard Worker  **/
236*6777b538SAndroid Build Coastguard Worker - (void)writeUInt64:(int32_t)fieldNumber value:(uint64_t)value;
237*6777b538SAndroid Build Coastguard Worker /**
238*6777b538SAndroid Build Coastguard Worker  * Write a packed array of uint64_t for the given field number.
239*6777b538SAndroid Build Coastguard Worker  *
240*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
241*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
242*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
243*6777b538SAndroid Build Coastguard Worker  **/
244*6777b538SAndroid Build Coastguard Worker - (void)writeUInt64Array:(int32_t)fieldNumber
245*6777b538SAndroid Build Coastguard Worker                   values:(GPBUInt64Array *)values
246*6777b538SAndroid Build Coastguard Worker                      tag:(uint32_t)tag;
247*6777b538SAndroid Build Coastguard Worker /**
248*6777b538SAndroid Build Coastguard Worker  * Write a uint64_t without any tag.
249*6777b538SAndroid Build Coastguard Worker  *
250*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
251*6777b538SAndroid Build Coastguard Worker  **/
252*6777b538SAndroid Build Coastguard Worker - (void)writeUInt64NoTag:(uint64_t)value;
253*6777b538SAndroid Build Coastguard Worker 
254*6777b538SAndroid Build Coastguard Worker /**
255*6777b538SAndroid Build Coastguard Worker  * Write a int64_t for the given field number.
256*6777b538SAndroid Build Coastguard Worker  *
257*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
258*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
259*6777b538SAndroid Build Coastguard Worker  **/
260*6777b538SAndroid Build Coastguard Worker - (void)writeInt64:(int32_t)fieldNumber value:(int64_t)value;
261*6777b538SAndroid Build Coastguard Worker /**
262*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int64_t for the given field number.
263*6777b538SAndroid Build Coastguard Worker  *
264*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
265*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
266*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
267*6777b538SAndroid Build Coastguard Worker  **/
268*6777b538SAndroid Build Coastguard Worker - (void)writeInt64Array:(int32_t)fieldNumber
269*6777b538SAndroid Build Coastguard Worker                  values:(GPBInt64Array *)values
270*6777b538SAndroid Build Coastguard Worker                     tag:(uint32_t)tag;
271*6777b538SAndroid Build Coastguard Worker /**
272*6777b538SAndroid Build Coastguard Worker  * Write a int64_t without any tag.
273*6777b538SAndroid Build Coastguard Worker  *
274*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
275*6777b538SAndroid Build Coastguard Worker  **/
276*6777b538SAndroid Build Coastguard Worker - (void)writeInt64NoTag:(int64_t)value;
277*6777b538SAndroid Build Coastguard Worker 
278*6777b538SAndroid Build Coastguard Worker /**
279*6777b538SAndroid Build Coastguard Worker  * Write a int32_t for the given field number.
280*6777b538SAndroid Build Coastguard Worker  *
281*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
282*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
283*6777b538SAndroid Build Coastguard Worker  **/
284*6777b538SAndroid Build Coastguard Worker - (void)writeInt32:(int32_t)fieldNumber value:(int32_t)value;
285*6777b538SAndroid Build Coastguard Worker /**
286*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int32_t for the given field number.
287*6777b538SAndroid Build Coastguard Worker  *
288*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
289*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
290*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
291*6777b538SAndroid Build Coastguard Worker  **/
292*6777b538SAndroid Build Coastguard Worker - (void)writeInt32Array:(int32_t)fieldNumber
293*6777b538SAndroid Build Coastguard Worker                  values:(GPBInt32Array *)values
294*6777b538SAndroid Build Coastguard Worker                     tag:(uint32_t)tag;
295*6777b538SAndroid Build Coastguard Worker /**
296*6777b538SAndroid Build Coastguard Worker  * Write a int32_t without any tag.
297*6777b538SAndroid Build Coastguard Worker  *
298*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
299*6777b538SAndroid Build Coastguard Worker  **/
300*6777b538SAndroid Build Coastguard Worker - (void)writeInt32NoTag:(int32_t)value;
301*6777b538SAndroid Build Coastguard Worker 
302*6777b538SAndroid Build Coastguard Worker /**
303*6777b538SAndroid Build Coastguard Worker  * Write a uint32_t for the given field number.
304*6777b538SAndroid Build Coastguard Worker  *
305*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
306*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
307*6777b538SAndroid Build Coastguard Worker  **/
308*6777b538SAndroid Build Coastguard Worker - (void)writeUInt32:(int32_t)fieldNumber value:(uint32_t)value;
309*6777b538SAndroid Build Coastguard Worker /**
310*6777b538SAndroid Build Coastguard Worker  * Write a packed array of uint32_t for the given field number.
311*6777b538SAndroid Build Coastguard Worker  *
312*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
313*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
314*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
315*6777b538SAndroid Build Coastguard Worker  **/
316*6777b538SAndroid Build Coastguard Worker - (void)writeUInt32Array:(int32_t)fieldNumber
317*6777b538SAndroid Build Coastguard Worker                   values:(GPBUInt32Array *)values
318*6777b538SAndroid Build Coastguard Worker                      tag:(uint32_t)tag;
319*6777b538SAndroid Build Coastguard Worker /**
320*6777b538SAndroid Build Coastguard Worker  * Write a uint32_t without any tag.
321*6777b538SAndroid Build Coastguard Worker  *
322*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
323*6777b538SAndroid Build Coastguard Worker  **/
324*6777b538SAndroid Build Coastguard Worker - (void)writeUInt32NoTag:(uint32_t)value;
325*6777b538SAndroid Build Coastguard Worker 
326*6777b538SAndroid Build Coastguard Worker /**
327*6777b538SAndroid Build Coastguard Worker  * Write a uint64_t for the given field number.
328*6777b538SAndroid Build Coastguard Worker  *
329*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
330*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
331*6777b538SAndroid Build Coastguard Worker  **/
332*6777b538SAndroid Build Coastguard Worker - (void)writeFixed64:(int32_t)fieldNumber value:(uint64_t)value;
333*6777b538SAndroid Build Coastguard Worker /**
334*6777b538SAndroid Build Coastguard Worker  * Write a packed array of uint64_t for the given field number.
335*6777b538SAndroid Build Coastguard Worker  *
336*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
337*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
338*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
339*6777b538SAndroid Build Coastguard Worker  **/
340*6777b538SAndroid Build Coastguard Worker - (void)writeFixed64Array:(int32_t)fieldNumber
341*6777b538SAndroid Build Coastguard Worker                    values:(GPBUInt64Array *)values
342*6777b538SAndroid Build Coastguard Worker                       tag:(uint32_t)tag;
343*6777b538SAndroid Build Coastguard Worker /**
344*6777b538SAndroid Build Coastguard Worker  * Write a uint64_t without any tag.
345*6777b538SAndroid Build Coastguard Worker  *
346*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
347*6777b538SAndroid Build Coastguard Worker  **/
348*6777b538SAndroid Build Coastguard Worker - (void)writeFixed64NoTag:(uint64_t)value;
349*6777b538SAndroid Build Coastguard Worker 
350*6777b538SAndroid Build Coastguard Worker /**
351*6777b538SAndroid Build Coastguard Worker  * Write a uint32_t for the given field number.
352*6777b538SAndroid Build Coastguard Worker  *
353*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
354*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
355*6777b538SAndroid Build Coastguard Worker  **/
356*6777b538SAndroid Build Coastguard Worker - (void)writeFixed32:(int32_t)fieldNumber value:(uint32_t)value;
357*6777b538SAndroid Build Coastguard Worker /**
358*6777b538SAndroid Build Coastguard Worker  * Write a packed array of uint32_t for the given field number.
359*6777b538SAndroid Build Coastguard Worker  *
360*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
361*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
362*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
363*6777b538SAndroid Build Coastguard Worker  **/
364*6777b538SAndroid Build Coastguard Worker - (void)writeFixed32Array:(int32_t)fieldNumber
365*6777b538SAndroid Build Coastguard Worker                    values:(GPBUInt32Array *)values
366*6777b538SAndroid Build Coastguard Worker                       tag:(uint32_t)tag;
367*6777b538SAndroid Build Coastguard Worker /**
368*6777b538SAndroid Build Coastguard Worker  * Write a uint32_t without any tag.
369*6777b538SAndroid Build Coastguard Worker  *
370*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
371*6777b538SAndroid Build Coastguard Worker  **/
372*6777b538SAndroid Build Coastguard Worker - (void)writeFixed32NoTag:(uint32_t)value;
373*6777b538SAndroid Build Coastguard Worker 
374*6777b538SAndroid Build Coastguard Worker /**
375*6777b538SAndroid Build Coastguard Worker  * Write a int32_t for the given field number.
376*6777b538SAndroid Build Coastguard Worker  *
377*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
378*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
379*6777b538SAndroid Build Coastguard Worker  **/
380*6777b538SAndroid Build Coastguard Worker - (void)writeSInt32:(int32_t)fieldNumber value:(int32_t)value;
381*6777b538SAndroid Build Coastguard Worker /**
382*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int32_t for the given field number.
383*6777b538SAndroid Build Coastguard Worker  *
384*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
385*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
386*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
387*6777b538SAndroid Build Coastguard Worker  **/
388*6777b538SAndroid Build Coastguard Worker - (void)writeSInt32Array:(int32_t)fieldNumber
389*6777b538SAndroid Build Coastguard Worker                   values:(GPBInt32Array *)values
390*6777b538SAndroid Build Coastguard Worker                      tag:(uint32_t)tag;
391*6777b538SAndroid Build Coastguard Worker /**
392*6777b538SAndroid Build Coastguard Worker  * Write a int32_t without any tag.
393*6777b538SAndroid Build Coastguard Worker  *
394*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
395*6777b538SAndroid Build Coastguard Worker  **/
396*6777b538SAndroid Build Coastguard Worker - (void)writeSInt32NoTag:(int32_t)value;
397*6777b538SAndroid Build Coastguard Worker 
398*6777b538SAndroid Build Coastguard Worker /**
399*6777b538SAndroid Build Coastguard Worker  * Write a int64_t for the given field number.
400*6777b538SAndroid Build Coastguard Worker  *
401*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
402*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
403*6777b538SAndroid Build Coastguard Worker  **/
404*6777b538SAndroid Build Coastguard Worker - (void)writeSInt64:(int32_t)fieldNumber value:(int64_t)value;
405*6777b538SAndroid Build Coastguard Worker /**
406*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int64_t for the given field number.
407*6777b538SAndroid Build Coastguard Worker  *
408*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
409*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
410*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
411*6777b538SAndroid Build Coastguard Worker  **/
412*6777b538SAndroid Build Coastguard Worker - (void)writeSInt64Array:(int32_t)fieldNumber
413*6777b538SAndroid Build Coastguard Worker                   values:(GPBInt64Array *)values
414*6777b538SAndroid Build Coastguard Worker                      tag:(uint32_t)tag;
415*6777b538SAndroid Build Coastguard Worker /**
416*6777b538SAndroid Build Coastguard Worker  * Write a int64_t without any tag.
417*6777b538SAndroid Build Coastguard Worker  *
418*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
419*6777b538SAndroid Build Coastguard Worker  **/
420*6777b538SAndroid Build Coastguard Worker - (void)writeSInt64NoTag:(int64_t)value;
421*6777b538SAndroid Build Coastguard Worker 
422*6777b538SAndroid Build Coastguard Worker /**
423*6777b538SAndroid Build Coastguard Worker  * Write a int64_t for the given field number.
424*6777b538SAndroid Build Coastguard Worker  *
425*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
426*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
427*6777b538SAndroid Build Coastguard Worker  **/
428*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed64:(int32_t)fieldNumber value:(int64_t)value;
429*6777b538SAndroid Build Coastguard Worker /**
430*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int64_t for the given field number.
431*6777b538SAndroid Build Coastguard Worker  *
432*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
433*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
434*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
435*6777b538SAndroid Build Coastguard Worker  **/
436*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed64Array:(int32_t)fieldNumber
437*6777b538SAndroid Build Coastguard Worker                     values:(GPBInt64Array *)values
438*6777b538SAndroid Build Coastguard Worker                        tag:(uint32_t)tag;
439*6777b538SAndroid Build Coastguard Worker /**
440*6777b538SAndroid Build Coastguard Worker  * Write a int64_t without any tag.
441*6777b538SAndroid Build Coastguard Worker  *
442*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
443*6777b538SAndroid Build Coastguard Worker  **/
444*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed64NoTag:(int64_t)value;
445*6777b538SAndroid Build Coastguard Worker 
446*6777b538SAndroid Build Coastguard Worker /**
447*6777b538SAndroid Build Coastguard Worker  * Write a int32_t for the given field number.
448*6777b538SAndroid Build Coastguard Worker  *
449*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
450*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
451*6777b538SAndroid Build Coastguard Worker  **/
452*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed32:(int32_t)fieldNumber value:(int32_t)value;
453*6777b538SAndroid Build Coastguard Worker /**
454*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int32_t for the given field number.
455*6777b538SAndroid Build Coastguard Worker  *
456*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
457*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
458*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
459*6777b538SAndroid Build Coastguard Worker  **/
460*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed32Array:(int32_t)fieldNumber
461*6777b538SAndroid Build Coastguard Worker                     values:(GPBInt32Array *)values
462*6777b538SAndroid Build Coastguard Worker                        tag:(uint32_t)tag;
463*6777b538SAndroid Build Coastguard Worker /**
464*6777b538SAndroid Build Coastguard Worker  * Write a int32_t without any tag.
465*6777b538SAndroid Build Coastguard Worker  *
466*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
467*6777b538SAndroid Build Coastguard Worker  **/
468*6777b538SAndroid Build Coastguard Worker - (void)writeSFixed32NoTag:(int32_t)value;
469*6777b538SAndroid Build Coastguard Worker 
470*6777b538SAndroid Build Coastguard Worker /**
471*6777b538SAndroid Build Coastguard Worker  * Write a BOOL for the given field number.
472*6777b538SAndroid Build Coastguard Worker  *
473*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
474*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
475*6777b538SAndroid Build Coastguard Worker  **/
476*6777b538SAndroid Build Coastguard Worker - (void)writeBool:(int32_t)fieldNumber value:(BOOL)value;
477*6777b538SAndroid Build Coastguard Worker /**
478*6777b538SAndroid Build Coastguard Worker  * Write a packed array of BOOL for the given field number.
479*6777b538SAndroid Build Coastguard Worker  *
480*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
481*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
482*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
483*6777b538SAndroid Build Coastguard Worker  **/
484*6777b538SAndroid Build Coastguard Worker - (void)writeBoolArray:(int32_t)fieldNumber
485*6777b538SAndroid Build Coastguard Worker                 values:(GPBBoolArray *)values
486*6777b538SAndroid Build Coastguard Worker                    tag:(uint32_t)tag;
487*6777b538SAndroid Build Coastguard Worker /**
488*6777b538SAndroid Build Coastguard Worker  * Write a BOOL without any tag.
489*6777b538SAndroid Build Coastguard Worker  *
490*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
491*6777b538SAndroid Build Coastguard Worker  **/
492*6777b538SAndroid Build Coastguard Worker - (void)writeBoolNoTag:(BOOL)value;
493*6777b538SAndroid Build Coastguard Worker 
494*6777b538SAndroid Build Coastguard Worker /**
495*6777b538SAndroid Build Coastguard Worker  * Write a int32_t for the given field number.
496*6777b538SAndroid Build Coastguard Worker  *
497*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
498*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
499*6777b538SAndroid Build Coastguard Worker  **/
500*6777b538SAndroid Build Coastguard Worker - (void)writeEnum:(int32_t)fieldNumber value:(int32_t)value;
501*6777b538SAndroid Build Coastguard Worker /**
502*6777b538SAndroid Build Coastguard Worker  * Write a packed array of int32_t for the given field number.
503*6777b538SAndroid Build Coastguard Worker  *
504*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
505*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
506*6777b538SAndroid Build Coastguard Worker  * @param tag         The tag assigned to the values.
507*6777b538SAndroid Build Coastguard Worker  **/
508*6777b538SAndroid Build Coastguard Worker - (void)writeEnumArray:(int32_t)fieldNumber
509*6777b538SAndroid Build Coastguard Worker                 values:(GPBEnumArray *)values
510*6777b538SAndroid Build Coastguard Worker                    tag:(uint32_t)tag;
511*6777b538SAndroid Build Coastguard Worker /**
512*6777b538SAndroid Build Coastguard Worker  * Write a int32_t without any tag.
513*6777b538SAndroid Build Coastguard Worker  *
514*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
515*6777b538SAndroid Build Coastguard Worker  **/
516*6777b538SAndroid Build Coastguard Worker - (void)writeEnumNoTag:(int32_t)value;
517*6777b538SAndroid Build Coastguard Worker 
518*6777b538SAndroid Build Coastguard Worker /**
519*6777b538SAndroid Build Coastguard Worker  * Write a NSString for the given field number.
520*6777b538SAndroid Build Coastguard Worker  *
521*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
522*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
523*6777b538SAndroid Build Coastguard Worker  **/
524*6777b538SAndroid Build Coastguard Worker - (void)writeString:(int32_t)fieldNumber value:(NSString *)value;
525*6777b538SAndroid Build Coastguard Worker /**
526*6777b538SAndroid Build Coastguard Worker  * Write an array of NSString for the given field number.
527*6777b538SAndroid Build Coastguard Worker  *
528*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
529*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
530*6777b538SAndroid Build Coastguard Worker  **/
531*6777b538SAndroid Build Coastguard Worker - (void)writeStringArray:(int32_t)fieldNumber
532*6777b538SAndroid Build Coastguard Worker                   values:(NSArray<NSString*> *)values;
533*6777b538SAndroid Build Coastguard Worker /**
534*6777b538SAndroid Build Coastguard Worker  * Write a NSString without any tag.
535*6777b538SAndroid Build Coastguard Worker  *
536*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
537*6777b538SAndroid Build Coastguard Worker  **/
538*6777b538SAndroid Build Coastguard Worker - (void)writeStringNoTag:(NSString *)value;
539*6777b538SAndroid Build Coastguard Worker 
540*6777b538SAndroid Build Coastguard Worker /**
541*6777b538SAndroid Build Coastguard Worker  * Write a GPBMessage for the given field number.
542*6777b538SAndroid Build Coastguard Worker  *
543*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
544*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
545*6777b538SAndroid Build Coastguard Worker  **/
546*6777b538SAndroid Build Coastguard Worker - (void)writeMessage:(int32_t)fieldNumber value:(GPBMessage *)value;
547*6777b538SAndroid Build Coastguard Worker /**
548*6777b538SAndroid Build Coastguard Worker  * Write an array of GPBMessage for the given field number.
549*6777b538SAndroid Build Coastguard Worker  *
550*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
551*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
552*6777b538SAndroid Build Coastguard Worker  **/
553*6777b538SAndroid Build Coastguard Worker - (void)writeMessageArray:(int32_t)fieldNumber
554*6777b538SAndroid Build Coastguard Worker                    values:(NSArray<GPBMessage*> *)values;
555*6777b538SAndroid Build Coastguard Worker /**
556*6777b538SAndroid Build Coastguard Worker  * Write a GPBMessage without any tag.
557*6777b538SAndroid Build Coastguard Worker  *
558*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
559*6777b538SAndroid Build Coastguard Worker  **/
560*6777b538SAndroid Build Coastguard Worker - (void)writeMessageNoTag:(GPBMessage *)value;
561*6777b538SAndroid Build Coastguard Worker 
562*6777b538SAndroid Build Coastguard Worker /**
563*6777b538SAndroid Build Coastguard Worker  * Write a NSData for the given field number.
564*6777b538SAndroid Build Coastguard Worker  *
565*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
566*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
567*6777b538SAndroid Build Coastguard Worker  **/
568*6777b538SAndroid Build Coastguard Worker - (void)writeBytes:(int32_t)fieldNumber value:(NSData *)value;
569*6777b538SAndroid Build Coastguard Worker /**
570*6777b538SAndroid Build Coastguard Worker  * Write an array of NSData for the given field number.
571*6777b538SAndroid Build Coastguard Worker  *
572*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
573*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
574*6777b538SAndroid Build Coastguard Worker  **/
575*6777b538SAndroid Build Coastguard Worker - (void)writeBytesArray:(int32_t)fieldNumber
576*6777b538SAndroid Build Coastguard Worker                  values:(NSArray<NSData*> *)values;
577*6777b538SAndroid Build Coastguard Worker /**
578*6777b538SAndroid Build Coastguard Worker  * Write a NSData without any tag.
579*6777b538SAndroid Build Coastguard Worker  *
580*6777b538SAndroid Build Coastguard Worker  * @param value The value to write out.
581*6777b538SAndroid Build Coastguard Worker  **/
582*6777b538SAndroid Build Coastguard Worker - (void)writeBytesNoTag:(NSData *)value;
583*6777b538SAndroid Build Coastguard Worker 
584*6777b538SAndroid Build Coastguard Worker /**
585*6777b538SAndroid Build Coastguard Worker  * Write a GPBMessage for the given field number.
586*6777b538SAndroid Build Coastguard Worker  *
587*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
588*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
589*6777b538SAndroid Build Coastguard Worker  **/
590*6777b538SAndroid Build Coastguard Worker - (void)writeGroup:(int32_t)fieldNumber
591*6777b538SAndroid Build Coastguard Worker              value:(GPBMessage *)value;
592*6777b538SAndroid Build Coastguard Worker /**
593*6777b538SAndroid Build Coastguard Worker  * Write an array of GPBMessage for the given field number.
594*6777b538SAndroid Build Coastguard Worker  *
595*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
596*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
597*6777b538SAndroid Build Coastguard Worker  **/
598*6777b538SAndroid Build Coastguard Worker - (void)writeGroupArray:(int32_t)fieldNumber
599*6777b538SAndroid Build Coastguard Worker                  values:(NSArray<GPBMessage*> *)values;
600*6777b538SAndroid Build Coastguard Worker /**
601*6777b538SAndroid Build Coastguard Worker  * Write a GPBMessage without any tag (but does write the endGroup tag).
602*6777b538SAndroid Build Coastguard Worker  *
603*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
604*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
605*6777b538SAndroid Build Coastguard Worker  **/
606*6777b538SAndroid Build Coastguard Worker - (void)writeGroupNoTag:(int32_t)fieldNumber
607*6777b538SAndroid Build Coastguard Worker                   value:(GPBMessage *)value;
608*6777b538SAndroid Build Coastguard Worker 
609*6777b538SAndroid Build Coastguard Worker /**
610*6777b538SAndroid Build Coastguard Worker  * Write a GPBUnknownFieldSet for the given field number.
611*6777b538SAndroid Build Coastguard Worker  *
612*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
613*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
614*6777b538SAndroid Build Coastguard Worker  **/
615*6777b538SAndroid Build Coastguard Worker - (void)writeUnknownGroup:(int32_t)fieldNumber
616*6777b538SAndroid Build Coastguard Worker                     value:(GPBUnknownFieldSet *)value;
617*6777b538SAndroid Build Coastguard Worker /**
618*6777b538SAndroid Build Coastguard Worker  * Write an array of GPBUnknownFieldSet for the given field number.
619*6777b538SAndroid Build Coastguard Worker  *
620*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the values.
621*6777b538SAndroid Build Coastguard Worker  * @param values      The values to write out.
622*6777b538SAndroid Build Coastguard Worker  **/
623*6777b538SAndroid Build Coastguard Worker - (void)writeUnknownGroupArray:(int32_t)fieldNumber
624*6777b538SAndroid Build Coastguard Worker                         values:(NSArray<GPBUnknownFieldSet*> *)values;
625*6777b538SAndroid Build Coastguard Worker /**
626*6777b538SAndroid Build Coastguard Worker  * Write a GPBUnknownFieldSet without any tag (but does write the endGroup tag).
627*6777b538SAndroid Build Coastguard Worker  *
628*6777b538SAndroid Build Coastguard Worker  * @param fieldNumber The field number assigned to the value.
629*6777b538SAndroid Build Coastguard Worker  * @param value       The value to write out.
630*6777b538SAndroid Build Coastguard Worker  **/
631*6777b538SAndroid Build Coastguard Worker - (void)writeUnknownGroupNoTag:(int32_t)fieldNumber
632*6777b538SAndroid Build Coastguard Worker                          value:(GPBUnknownFieldSet *)value;
633*6777b538SAndroid Build Coastguard Worker 
634*6777b538SAndroid Build Coastguard Worker // clang-format on
635*6777b538SAndroid Build Coastguard Worker //%PDDM-EXPAND-END _WRITE_DECLS()
636*6777b538SAndroid Build Coastguard Worker 
637*6777b538SAndroid Build Coastguard Worker /**
638*6777b538SAndroid Build Coastguard Worker Write a MessageSet extension field to the stream. For historical reasons,
639*6777b538SAndroid Build Coastguard Worker the wire format differs from normal fields.
640*6777b538SAndroid Build Coastguard Worker 
641*6777b538SAndroid Build Coastguard Worker @param fieldNumber The extension field number to write out.
642*6777b538SAndroid Build Coastguard Worker @param value       The message from where to get the extension.
643*6777b538SAndroid Build Coastguard Worker */
644*6777b538SAndroid Build Coastguard Worker - (void)writeMessageSetExtension:(int32_t)fieldNumber value:(GPBMessage *)value;
645*6777b538SAndroid Build Coastguard Worker 
646*6777b538SAndroid Build Coastguard Worker /**
647*6777b538SAndroid Build Coastguard Worker Write an unparsed MessageSet extension field to the stream. For historical
648*6777b538SAndroid Build Coastguard Worker reasons, the wire format differs from normal fields.
649*6777b538SAndroid Build Coastguard Worker 
650*6777b538SAndroid Build Coastguard Worker @param fieldNumber The extension field number to write out.
651*6777b538SAndroid Build Coastguard Worker @param value       The raw message from where to get the extension.
652*6777b538SAndroid Build Coastguard Worker */
653*6777b538SAndroid Build Coastguard Worker - (void)writeRawMessageSetExtension:(int32_t)fieldNumber value:(NSData *)value;
654*6777b538SAndroid Build Coastguard Worker 
655*6777b538SAndroid Build Coastguard Worker @end
656*6777b538SAndroid Build Coastguard Worker 
657*6777b538SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_END
658*6777b538SAndroid Build Coastguard Worker 
659*6777b538SAndroid Build Coastguard Worker // Write methods for types that can be in packed arrays.
660*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE _WRITE_PACKABLE_DECLS(NAME, ARRAY_TYPE, TYPE)
661*6777b538SAndroid Build Coastguard Worker //%/**
662*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE for the given field number.
663*6777b538SAndroid Build Coastguard Worker //% *
664*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the value.
665*6777b538SAndroid Build Coastguard Worker //% * @param value       The value to write out.
666*6777b538SAndroid Build Coastguard Worker //% **/
667*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE)value;
668*6777b538SAndroid Build Coastguard Worker //%/**
669*6777b538SAndroid Build Coastguard Worker //% * Write a packed array of TYPE for the given field number.
670*6777b538SAndroid Build Coastguard Worker //% *
671*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the values.
672*6777b538SAndroid Build Coastguard Worker //% * @param values      The values to write out.
673*6777b538SAndroid Build Coastguard Worker //% * @param tag         The tag assigned to the values.
674*6777b538SAndroid Build Coastguard Worker //% **/
675*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##Array:(int32_t)fieldNumber
676*6777b538SAndroid Build Coastguard Worker //%       NAME$S     values:(GPB##ARRAY_TYPE##Array *)values
677*6777b538SAndroid Build Coastguard Worker //%       NAME$S        tag:(uint32_t)tag;
678*6777b538SAndroid Build Coastguard Worker //%/**
679*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE without any tag.
680*6777b538SAndroid Build Coastguard Worker //% *
681*6777b538SAndroid Build Coastguard Worker //% * @param value The value to write out.
682*6777b538SAndroid Build Coastguard Worker //% **/
683*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##NoTag:(TYPE)value;
684*6777b538SAndroid Build Coastguard Worker //%
685*6777b538SAndroid Build Coastguard Worker // Write methods for types that aren't in packed arrays.
686*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE _WRITE_UNPACKABLE_DECLS(NAME, TYPE)
687*6777b538SAndroid Build Coastguard Worker //%/**
688*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE for the given field number.
689*6777b538SAndroid Build Coastguard Worker //% *
690*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the value.
691*6777b538SAndroid Build Coastguard Worker //% * @param value       The value to write out.
692*6777b538SAndroid Build Coastguard Worker //% **/
693*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE *)value;
694*6777b538SAndroid Build Coastguard Worker //%/**
695*6777b538SAndroid Build Coastguard Worker //% * Write an array of TYPE for the given field number.
696*6777b538SAndroid Build Coastguard Worker //% *
697*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the values.
698*6777b538SAndroid Build Coastguard Worker //% * @param values      The values to write out.
699*6777b538SAndroid Build Coastguard Worker //% **/
700*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##Array:(int32_t)fieldNumber
701*6777b538SAndroid Build Coastguard Worker //%           NAME$S values:(NSArray<##TYPE##*> *)values;
702*6777b538SAndroid Build Coastguard Worker //%/**
703*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE without any tag.
704*6777b538SAndroid Build Coastguard Worker //% *
705*6777b538SAndroid Build Coastguard Worker //% * @param value The value to write out.
706*6777b538SAndroid Build Coastguard Worker //% **/
707*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##NoTag:(TYPE *)value;
708*6777b538SAndroid Build Coastguard Worker //%
709*6777b538SAndroid Build Coastguard Worker // Special write methods for Groups.
710*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE _WRITE_GROUP_DECLS(NAME, TYPE)
711*6777b538SAndroid Build Coastguard Worker //%/**
712*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE for the given field number.
713*6777b538SAndroid Build Coastguard Worker //% *
714*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the value.
715*6777b538SAndroid Build Coastguard Worker //% * @param value       The value to write out.
716*6777b538SAndroid Build Coastguard Worker //% **/
717*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME:(int32_t)fieldNumber
718*6777b538SAndroid Build Coastguard Worker //%       NAME$S value:(TYPE *)value;
719*6777b538SAndroid Build Coastguard Worker //%/**
720*6777b538SAndroid Build Coastguard Worker //% * Write an array of TYPE for the given field number.
721*6777b538SAndroid Build Coastguard Worker //% *
722*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the values.
723*6777b538SAndroid Build Coastguard Worker //% * @param values      The values to write out.
724*6777b538SAndroid Build Coastguard Worker //% **/
725*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##Array:(int32_t)fieldNumber
726*6777b538SAndroid Build Coastguard Worker //%           NAME$S values:(NSArray<##TYPE##*> *)values;
727*6777b538SAndroid Build Coastguard Worker //%/**
728*6777b538SAndroid Build Coastguard Worker //% * Write a TYPE without any tag (but does write the endGroup tag).
729*6777b538SAndroid Build Coastguard Worker //% *
730*6777b538SAndroid Build Coastguard Worker //% * @param fieldNumber The field number assigned to the value.
731*6777b538SAndroid Build Coastguard Worker //% * @param value       The value to write out.
732*6777b538SAndroid Build Coastguard Worker //% **/
733*6777b538SAndroid Build Coastguard Worker //%- (void)write##NAME##NoTag:(int32_t)fieldNumber
734*6777b538SAndroid Build Coastguard Worker //%            NAME$S value:(TYPE *)value;
735*6777b538SAndroid Build Coastguard Worker //%
736*6777b538SAndroid Build Coastguard Worker 
737*6777b538SAndroid Build Coastguard Worker // One macro to hide it all up above.
738*6777b538SAndroid Build Coastguard Worker //%PDDM-DEFINE _WRITE_DECLS()
739*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Double, Double, double)
740*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Float, Float, float)
741*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(UInt64, UInt64, uint64_t)
742*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Int64, Int64, int64_t)
743*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Int32, Int32, int32_t)
744*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(UInt32, UInt32, uint32_t)
745*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Fixed64, UInt64, uint64_t)
746*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Fixed32, UInt32, uint32_t)
747*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(SInt32, Int32, int32_t)
748*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(SInt64, Int64, int64_t)
749*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(SFixed64, Int64, int64_t)
750*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(SFixed32, Int32, int32_t)
751*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Bool, Bool, BOOL)
752*6777b538SAndroid Build Coastguard Worker //%_WRITE_PACKABLE_DECLS(Enum, Enum, int32_t)
753*6777b538SAndroid Build Coastguard Worker //%_WRITE_UNPACKABLE_DECLS(String, NSString)
754*6777b538SAndroid Build Coastguard Worker //%_WRITE_UNPACKABLE_DECLS(Message, GPBMessage)
755*6777b538SAndroid Build Coastguard Worker //%_WRITE_UNPACKABLE_DECLS(Bytes, NSData)
756*6777b538SAndroid Build Coastguard Worker //%_WRITE_GROUP_DECLS(Group, GPBMessage)
757*6777b538SAndroid Build Coastguard Worker //%_WRITE_GROUP_DECLS(UnknownGroup, GPBUnknownFieldSet)
758