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