| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #import <Foundation/Foundation.h> | 31 #import <Foundation/Foundation.h> |
| 32 | 32 |
| 33 #import "GPBArray.h" | 33 #import "GPBArray.h" |
| 34 #import "GPBMessage.h" | 34 #import "GPBMessage.h" |
| 35 #import "GPBRuntimeTypes.h" | 35 #import "GPBRuntimeTypes.h" |
| 36 | 36 |
| 37 CF_EXTERN_C_BEGIN | 37 CF_EXTERN_C_BEGIN |
| 38 | 38 |
| 39 NS_ASSUME_NONNULL_BEGIN | 39 NS_ASSUME_NONNULL_BEGIN |
| 40 | 40 |
| 41 // Generates a string that should be a valid "Text Format" for the C++ version | 41 /// Generates a string that should be a valid "Text Format" for the C++ version |
| 42 // of Protocol Buffers. lineIndent can be nil if no additional line indent is | 42 /// of Protocol Buffers. |
| 43 // needed. The comments provide the names according to the ObjC library, they | 43 /// |
| 44 // most likely won't exactly match the original .proto file. | 44 /// @param message The message to generate from. |
| 45 /// @param lineIndent A string to use as the prefix for all lines generated. Ca
n |
| 46 /// be nil if no extra indent is needed. |
| 47 /// |
| 48 /// @return A @c NSString with the Text Format of the message. |
| 45 NSString *GPBTextFormatForMessage(GPBMessage *message, | 49 NSString *GPBTextFormatForMessage(GPBMessage *message, |
| 46 NSString * __nullable lineIndent); | 50 NSString * __nullable lineIndent); |
| 51 |
| 52 /// Generates a string that should be a valid "Text Format" for the C++ version |
| 53 /// of Protocol Buffers. |
| 54 /// |
| 55 /// @param unknownSet The unknown field set to generate from. |
| 56 /// @param lineIndent A string to use as the prefix for all lines generated. Ca
n |
| 57 /// be nil if no extra indent is needed. |
| 58 /// |
| 59 /// @return A @c NSString with the Text Format of the unknown field set. |
| 47 NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknow
nSet, | 60 NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknow
nSet, |
| 48 NSString * __nullable lineIndent); | 61 NSString * __nullable lineIndent); |
| 49 | 62 |
| 50 // | 63 /// Test if the given field is set on a message. |
| 51 // Test if the given field is set on a message. | |
| 52 // | |
| 53 BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber); | 64 BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber); |
| 65 /// Test if the given field is set on a message. |
| 54 BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field); | 66 BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field); |
| 55 | 67 |
| 56 // | 68 /// Clear the given field of a message. |
| 57 // Clear the given field of a message. | |
| 58 // | |
| 59 void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field); | 69 void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field); |
| 60 | 70 |
| 61 //%PDDM-EXPAND GPB_ACCESSORS() | 71 //%PDDM-EXPAND GPB_ACCESSORS() |
| 62 // This block of code is generated, do not edit it directly. | 72 // This block of code is generated, do not edit it directly. |
| 63 | 73 |
| 64 | 74 |
| 65 // | 75 // |
| 66 // Get/Set the given field of a message. | 76 // Get/Set the given field of a message. |
| 67 // | 77 // |
| 68 | 78 |
| 69 // Single Fields | 79 // Single Fields |
| 70 | 80 |
| 81 /// Gets the value of a bytes field. |
| 71 NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field); | 82 NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field); |
| 83 /// Sets the value of a bytes field. |
| 72 void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData
*value); | 84 void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData
*value); |
| 73 | 85 |
| 86 /// Gets the value of a string field. |
| 74 NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field); | 87 NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field); |
| 88 /// Sets the value of a string field. |
| 75 void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSStr
ing *value); | 89 void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSStr
ing *value); |
| 76 | 90 |
| 91 /// Gets the value of a message field. |
| 77 GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *fiel
d); | 92 GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *fiel
d); |
| 93 /// Sets the value of a message field. |
| 78 void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBM
essage *value); | 94 void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBM
essage *value); |
| 79 | 95 |
| 96 /// Gets the value of a group field. |
| 80 GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field)
; | 97 GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field)
; |
| 98 /// Sets the value of a group field. |
| 81 void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMes
sage *value); | 99 void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMes
sage *value); |
| 82 | 100 |
| 101 /// Gets the value of a bool field. |
| 83 BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field); | 102 BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field); |
| 103 /// Sets the value of a bool field. |
| 84 void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL va
lue); | 104 void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL va
lue); |
| 85 | 105 |
| 106 /// Gets the value of an int32 field. |
| 86 int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field); | 107 int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field); |
| 108 /// Sets the value of an int32 field. |
| 87 void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_
t value); | 109 void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_
t value); |
| 88 | 110 |
| 111 /// Gets the value of an uint32 field. |
| 89 uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field); | 112 uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field); |
| 113 /// Sets the value of an uint32 field. |
| 90 void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint3
2_t value); | 114 void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint3
2_t value); |
| 91 | 115 |
| 116 /// Gets the value of an int64 field. |
| 92 int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field); | 117 int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field); |
| 118 /// Sets the value of an int64 field. |
| 93 void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_
t value); | 119 void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_
t value); |
| 94 | 120 |
| 121 /// Gets the value of an uint64 field. |
| 95 uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field); | 122 uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field); |
| 123 /// Sets the value of an uint64 field. |
| 96 void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint6
4_t value); | 124 void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint6
4_t value); |
| 97 | 125 |
| 126 /// Gets the value of a float field. |
| 98 float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field); | 127 float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field); |
| 128 /// Sets the value of a float field. |
| 99 void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float
value); | 129 void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float
value); |
| 100 | 130 |
| 131 /// Gets the value of a double field. |
| 101 double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field); | 132 double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field); |
| 133 /// Sets the value of a double field. |
| 102 void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, doubl
e value); | 134 void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, doubl
e value); |
| 103 | 135 |
| 104 // Get/Set the given enum field of a message. You can only Set values that are | 136 /// Get the given enum field of a message. For proto3, if the value isn't a |
| 105 // members of the enum. For proto3, when doing a Get, if the value isn't a | 137 /// member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned. |
| 106 // memeber of the enum, kGPBUnrecognizedEnumeratorValue will be returned. The | 138 /// GPBGetMessageRawEnumField will bypass the check and return whatever value |
| 107 // the functions with "Raw" in the will bypass all checks. | 139 /// was set. |
| 108 int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); | 140 int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); |
| 141 /// Set the given enum field of a message. You can only set values that are |
| 142 /// members of the enum. |
| 109 void GPBSetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field, int32_t
value); | 143 void GPBSetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field, int32_t
value); |
| 144 /// Get the given enum field of a message. No check is done to ensure the value |
| 145 /// was defined in the enum. |
| 110 int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field); | 146 int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field); |
| 147 /// Set the given enum field of a message. You can set the value to anything, |
| 148 /// even a value that is not a member of the enum. |
| 111 void GPBSetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field, int3
2_t value); | 149 void GPBSetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field, int3
2_t value); |
| 112 | 150 |
| 113 // Repeated Fields | 151 // Repeated Fields |
| 114 | 152 |
| 115 // The object will/should be GPB*Array or NSMutableArray based on the field's | 153 /// Gets the value of a repeated field. |
| 116 // type. | 154 /// |
| 155 /// The result will be @c GPB*Array or @c NSMutableArray based on the |
| 156 /// field's type. |
| 117 id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); | 157 id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); |
| 158 /// Sets the value of a repeated field. |
| 159 /// |
| 160 /// The value should be @c GPB*Array or @c NSMutableArray based on the |
| 161 /// field's type. |
| 118 void GPBSetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field, id
array); | 162 void GPBSetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field, id
array); |
| 119 | 163 |
| 120 // Map Fields | 164 // Map Fields |
| 121 | 165 |
| 122 // The object will/should be GPB*Dictionary or NSMutableDictionary based on the | 166 /// Gets the value of a map<> field. |
| 123 // field's type. | 167 /// |
| 168 /// The result will be @c GPB*Dictionary or @c NSMutableDictionary based on |
| 169 /// the field's type. |
| 124 id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); | 170 id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); |
| 171 /// Sets the value of a map<> field. |
| 172 /// |
| 173 /// The object should be @c GPB*Dictionary or @c NSMutableDictionary based |
| 174 /// on the field's type. |
| 125 void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field, id dicti
onary); | 175 void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field, id dicti
onary); |
| 126 | 176 |
| 127 //%PDDM-EXPAND-END GPB_ACCESSORS() | 177 //%PDDM-EXPAND-END GPB_ACCESSORS() |
| 128 | 178 |
| 129 // Returns an empty NSData to assign to byte fields when you wish | 179 // Returns an empty NSData to assign to byte fields when you wish |
| 130 // to assign them to empty. Prevents allocating a lot of little [NSData data] | 180 // to assign them to empty. Prevents allocating a lot of little [NSData data] |
| 131 // objects. | 181 // objects. |
| 132 NSData *GPBEmptyNSData(void) __attribute__((pure)); | 182 NSData *GPBEmptyNSData(void) __attribute__((pure)); |
| 133 | 183 |
| 134 NS_ASSUME_NONNULL_END | 184 NS_ASSUME_NONNULL_END |
| 135 | 185 |
| 136 CF_EXTERN_C_END | 186 CF_EXTERN_C_END |
| 137 | 187 |
| 138 | 188 |
| 139 //%PDDM-DEFINE GPB_ACCESSORS() | 189 //%PDDM-DEFINE GPB_ACCESSORS() |
| 140 //% | 190 //% |
| 141 //%// | 191 //%// |
| 142 //%// Get/Set the given field of a message. | 192 //%// Get/Set the given field of a message. |
| 143 //%// | 193 //%// |
| 144 //% | 194 //% |
| 145 //%// Single Fields | 195 //%// Single Fields |
| 146 //% | 196 //% |
| 147 //%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, *) | 197 //%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, , *) |
| 148 //%GPB_ACCESSOR_SINGLE_FULL(String, NSString, *) | 198 //%GPB_ACCESSOR_SINGLE_FULL(String, NSString, , *) |
| 149 //%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, *) | 199 //%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, , *) |
| 150 //%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, *) | 200 //%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, , *) |
| 151 //%GPB_ACCESSOR_SINGLE(Bool, BOOL) | 201 //%GPB_ACCESSOR_SINGLE(Bool, BOOL, ) |
| 152 //%GPB_ACCESSOR_SINGLE(Int32, int32_t) | 202 //%GPB_ACCESSOR_SINGLE(Int32, int32_t, n) |
| 153 //%GPB_ACCESSOR_SINGLE(UInt32, uint32_t) | 203 //%GPB_ACCESSOR_SINGLE(UInt32, uint32_t, n) |
| 154 //%GPB_ACCESSOR_SINGLE(Int64, int64_t) | 204 //%GPB_ACCESSOR_SINGLE(Int64, int64_t, n) |
| 155 //%GPB_ACCESSOR_SINGLE(UInt64, uint64_t) | 205 //%GPB_ACCESSOR_SINGLE(UInt64, uint64_t, n) |
| 156 //%GPB_ACCESSOR_SINGLE(Float, float) | 206 //%GPB_ACCESSOR_SINGLE(Float, float, ) |
| 157 //%GPB_ACCESSOR_SINGLE(Double, double) | 207 //%GPB_ACCESSOR_SINGLE(Double, double, ) |
| 158 //%// Get/Set the given enum field of a message. You can only Set values that a
re | 208 //%/// Get the given enum field of a message. For proto3, if the value isn't a |
| 159 //%// members of the enum. For proto3, when doing a Get, if the value isn't a | 209 //%/// member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned. |
| 160 //%// memeber of the enum, kGPBUnrecognizedEnumeratorValue will be returned. The | 210 //%/// GPBGetMessageRawEnumField will bypass the check and return whatever value |
| 161 //%// the functions with "Raw" in the will bypass all checks. | 211 //%/// was set. |
| 162 //%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); | 212 //%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field); |
| 213 //%/// Set the given enum field of a message. You can only set values that are |
| 214 //%/// members of the enum. |
| 163 //%void GPBSetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field, int3
2_t value); | 215 //%void GPBSetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field, int3
2_t value); |
| 216 //%/// Get the given enum field of a message. No check is done to ensure the val
ue |
| 217 //%/// was defined in the enum. |
| 164 //%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field
); | 218 //%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field
); |
| 219 //%/// Set the given enum field of a message. You can set the value to anything, |
| 220 //%/// even a value that is not a member of the enum. |
| 165 //%void GPBSetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field, i
nt32_t value); | 221 //%void GPBSetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field, i
nt32_t value); |
| 166 //% | 222 //% |
| 167 //%// Repeated Fields | 223 //%// Repeated Fields |
| 168 //% | 224 //% |
| 169 //%// The object will/should be GPB*Array or NSMutableArray based on the field's | 225 //%/// Gets the value of a repeated field. |
| 170 //%// type. | 226 //%/// |
| 227 //%/// The result will be @c GPB*Array or @c NSMutableArray based on the |
| 228 //%/// field's type. |
| 171 //%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); | 229 //%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field); |
| 230 //%/// Sets the value of a repeated field. |
| 231 //%/// |
| 232 //%/// The value should be @c GPB*Array or @c NSMutableArray based on the |
| 233 //%/// field's type. |
| 172 //%void GPBSetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field,
id array); | 234 //%void GPBSetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field,
id array); |
| 173 //% | 235 //% |
| 174 //%// Map Fields | 236 //%// Map Fields |
| 175 //% | 237 //% |
| 176 //%// The object will/should be GPB*Dictionary or NSMutableDictionary based on t
he | 238 //%/// Gets the value of a map<> field. |
| 177 //%// field's type. | 239 //%/// |
| 240 //%/// The result will be @c GPB*Dictionary or @c NSMutableDictionary based on |
| 241 //%/// the field's type. |
| 178 //%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); | 242 //%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field); |
| 243 //%/// Sets the value of a map<> field. |
| 244 //%/// |
| 245 //%/// The object should be @c GPB*Dictionary or @c NSMutableDictionary based |
| 246 //%/// on the field's type. |
| 179 //%void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field, id di
ctionary); | 247 //%void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field, id di
ctionary); |
| 180 //% | 248 //% |
| 181 | 249 |
| 182 //%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE) | 250 //%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE, AN) |
| 183 //%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, ) | 251 //%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, ) |
| 184 //%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, TisP) | 252 //%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, TisP) |
| 253 //%/// Gets the value of a##AN NAME$L field. |
| 185 //%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *f
ield); | 254 //%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *f
ield); |
| 255 //%/// Sets the value of a##AN NAME$L field. |
| 186 //%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field,
TYPE TisP##value); | 256 //%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field,
TYPE TisP##value); |
| 187 //% | 257 //% |
| OLD | NEW |