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