OLD | NEW |
(Empty) | |
| 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2015 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ |
| 4 // |
| 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are |
| 7 // met: |
| 8 // |
| 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. |
| 11 // * Redistributions in binary form must reproduce the above |
| 12 // copyright notice, this list of conditions and the following disclaimer |
| 13 // in the documentation and/or other materials provided with the |
| 14 // distribution. |
| 15 // * Neither the name of Google Inc. nor the names of its |
| 16 // contributors may be used to endorse or promote products derived from |
| 17 // this software without specific prior written permission. |
| 18 // |
| 19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 30 |
| 31 #import <Foundation/Foundation.h> |
| 32 |
| 33 #import "GPBRuntimeTypes.h" |
| 34 |
| 35 // These classes are used for repeated fields of basic data types. They are used
because |
| 36 // they perform better than boxing into NSNumbers in NSArrays. |
| 37 |
| 38 // Note: These are not meant to be subclassed. |
| 39 |
| 40 NS_ASSUME_NONNULL_BEGIN |
| 41 |
| 42 //%PDDM-EXPAND DECLARE_ARRAYS() |
| 43 // This block of code is generated, do not edit it directly. |
| 44 |
| 45 #pragma mark - Int32 |
| 46 |
| 47 @interface GPBInt32Array : NSObject <NSCopying> |
| 48 |
| 49 @property(nonatomic, readonly) NSUInteger count; |
| 50 |
| 51 + (instancetype)array; |
| 52 + (instancetype)arrayWithValue:(int32_t)value; |
| 53 + (instancetype)arrayWithValueArray:(GPBInt32Array *)array; |
| 54 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 55 |
| 56 // Initializes the array, copying the values. |
| 57 - (instancetype)initWithValues:(const int32_t [])values |
| 58 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 59 - (instancetype)initWithValueArray:(GPBInt32Array *)array; |
| 60 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 61 |
| 62 - (int32_t)valueAtIndex:(NSUInteger)index; |
| 63 |
| 64 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *
stop))block; |
| 65 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 66 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL
*stop))block; |
| 67 |
| 68 - (void)addValue:(int32_t)value; |
| 69 - (void)addValues:(const int32_t [])values count:(NSUInteger)count; |
| 70 - (void)addValuesFromArray:(GPBInt32Array *)array; |
| 71 |
| 72 - (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; |
| 73 |
| 74 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; |
| 75 |
| 76 - (void)removeValueAtIndex:(NSUInteger)index; |
| 77 - (void)removeAll; |
| 78 |
| 79 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 80 withValueAtIndex:(NSUInteger)idx2; |
| 81 |
| 82 @end |
| 83 |
| 84 #pragma mark - UInt32 |
| 85 |
| 86 @interface GPBUInt32Array : NSObject <NSCopying> |
| 87 |
| 88 @property(nonatomic, readonly) NSUInteger count; |
| 89 |
| 90 + (instancetype)array; |
| 91 + (instancetype)arrayWithValue:(uint32_t)value; |
| 92 + (instancetype)arrayWithValueArray:(GPBUInt32Array *)array; |
| 93 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 94 |
| 95 // Initializes the array, copying the values. |
| 96 - (instancetype)initWithValues:(const uint32_t [])values |
| 97 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 98 - (instancetype)initWithValueArray:(GPBUInt32Array *)array; |
| 99 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 100 |
| 101 - (uint32_t)valueAtIndex:(NSUInteger)index; |
| 102 |
| 103 - (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL
*stop))block; |
| 104 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 105 usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOO
L *stop))block; |
| 106 |
| 107 - (void)addValue:(uint32_t)value; |
| 108 - (void)addValues:(const uint32_t [])values count:(NSUInteger)count; |
| 109 - (void)addValuesFromArray:(GPBUInt32Array *)array; |
| 110 |
| 111 - (void)insertValue:(uint32_t)value atIndex:(NSUInteger)index; |
| 112 |
| 113 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint32_t)value; |
| 114 |
| 115 - (void)removeValueAtIndex:(NSUInteger)index; |
| 116 - (void)removeAll; |
| 117 |
| 118 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 119 withValueAtIndex:(NSUInteger)idx2; |
| 120 |
| 121 @end |
| 122 |
| 123 #pragma mark - Int64 |
| 124 |
| 125 @interface GPBInt64Array : NSObject <NSCopying> |
| 126 |
| 127 @property(nonatomic, readonly) NSUInteger count; |
| 128 |
| 129 + (instancetype)array; |
| 130 + (instancetype)arrayWithValue:(int64_t)value; |
| 131 + (instancetype)arrayWithValueArray:(GPBInt64Array *)array; |
| 132 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 133 |
| 134 // Initializes the array, copying the values. |
| 135 - (instancetype)initWithValues:(const int64_t [])values |
| 136 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 137 - (instancetype)initWithValueArray:(GPBInt64Array *)array; |
| 138 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 139 |
| 140 - (int64_t)valueAtIndex:(NSUInteger)index; |
| 141 |
| 142 - (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *
stop))block; |
| 143 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 144 usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL
*stop))block; |
| 145 |
| 146 - (void)addValue:(int64_t)value; |
| 147 - (void)addValues:(const int64_t [])values count:(NSUInteger)count; |
| 148 - (void)addValuesFromArray:(GPBInt64Array *)array; |
| 149 |
| 150 - (void)insertValue:(int64_t)value atIndex:(NSUInteger)index; |
| 151 |
| 152 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int64_t)value; |
| 153 |
| 154 - (void)removeValueAtIndex:(NSUInteger)index; |
| 155 - (void)removeAll; |
| 156 |
| 157 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 158 withValueAtIndex:(NSUInteger)idx2; |
| 159 |
| 160 @end |
| 161 |
| 162 #pragma mark - UInt64 |
| 163 |
| 164 @interface GPBUInt64Array : NSObject <NSCopying> |
| 165 |
| 166 @property(nonatomic, readonly) NSUInteger count; |
| 167 |
| 168 + (instancetype)array; |
| 169 + (instancetype)arrayWithValue:(uint64_t)value; |
| 170 + (instancetype)arrayWithValueArray:(GPBUInt64Array *)array; |
| 171 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 172 |
| 173 // Initializes the array, copying the values. |
| 174 - (instancetype)initWithValues:(const uint64_t [])values |
| 175 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 176 - (instancetype)initWithValueArray:(GPBUInt64Array *)array; |
| 177 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 178 |
| 179 - (uint64_t)valueAtIndex:(NSUInteger)index; |
| 180 |
| 181 - (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL
*stop))block; |
| 182 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 183 usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOO
L *stop))block; |
| 184 |
| 185 - (void)addValue:(uint64_t)value; |
| 186 - (void)addValues:(const uint64_t [])values count:(NSUInteger)count; |
| 187 - (void)addValuesFromArray:(GPBUInt64Array *)array; |
| 188 |
| 189 - (void)insertValue:(uint64_t)value atIndex:(NSUInteger)index; |
| 190 |
| 191 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint64_t)value; |
| 192 |
| 193 - (void)removeValueAtIndex:(NSUInteger)index; |
| 194 - (void)removeAll; |
| 195 |
| 196 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 197 withValueAtIndex:(NSUInteger)idx2; |
| 198 |
| 199 @end |
| 200 |
| 201 #pragma mark - Float |
| 202 |
| 203 @interface GPBFloatArray : NSObject <NSCopying> |
| 204 |
| 205 @property(nonatomic, readonly) NSUInteger count; |
| 206 |
| 207 + (instancetype)array; |
| 208 + (instancetype)arrayWithValue:(float)value; |
| 209 + (instancetype)arrayWithValueArray:(GPBFloatArray *)array; |
| 210 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 211 |
| 212 // Initializes the array, copying the values. |
| 213 - (instancetype)initWithValues:(const float [])values |
| 214 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 215 - (instancetype)initWithValueArray:(GPBFloatArray *)array; |
| 216 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 217 |
| 218 - (float)valueAtIndex:(NSUInteger)index; |
| 219 |
| 220 - (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *st
op))block; |
| 221 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 222 usingBlock:(void (^)(float value, NSUInteger idx, BOOL *
stop))block; |
| 223 |
| 224 - (void)addValue:(float)value; |
| 225 - (void)addValues:(const float [])values count:(NSUInteger)count; |
| 226 - (void)addValuesFromArray:(GPBFloatArray *)array; |
| 227 |
| 228 - (void)insertValue:(float)value atIndex:(NSUInteger)index; |
| 229 |
| 230 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(float)value; |
| 231 |
| 232 - (void)removeValueAtIndex:(NSUInteger)index; |
| 233 - (void)removeAll; |
| 234 |
| 235 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 236 withValueAtIndex:(NSUInteger)idx2; |
| 237 |
| 238 @end |
| 239 |
| 240 #pragma mark - Double |
| 241 |
| 242 @interface GPBDoubleArray : NSObject <NSCopying> |
| 243 |
| 244 @property(nonatomic, readonly) NSUInteger count; |
| 245 |
| 246 + (instancetype)array; |
| 247 + (instancetype)arrayWithValue:(double)value; |
| 248 + (instancetype)arrayWithValueArray:(GPBDoubleArray *)array; |
| 249 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 250 |
| 251 // Initializes the array, copying the values. |
| 252 - (instancetype)initWithValues:(const double [])values |
| 253 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 254 - (instancetype)initWithValueArray:(GPBDoubleArray *)array; |
| 255 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 256 |
| 257 - (double)valueAtIndex:(NSUInteger)index; |
| 258 |
| 259 - (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *s
top))block; |
| 260 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 261 usingBlock:(void (^)(double value, NSUInteger idx, BOOL
*stop))block; |
| 262 |
| 263 - (void)addValue:(double)value; |
| 264 - (void)addValues:(const double [])values count:(NSUInteger)count; |
| 265 - (void)addValuesFromArray:(GPBDoubleArray *)array; |
| 266 |
| 267 - (void)insertValue:(double)value atIndex:(NSUInteger)index; |
| 268 |
| 269 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(double)value; |
| 270 |
| 271 - (void)removeValueAtIndex:(NSUInteger)index; |
| 272 - (void)removeAll; |
| 273 |
| 274 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 275 withValueAtIndex:(NSUInteger)idx2; |
| 276 |
| 277 @end |
| 278 |
| 279 #pragma mark - Bool |
| 280 |
| 281 @interface GPBBoolArray : NSObject <NSCopying> |
| 282 |
| 283 @property(nonatomic, readonly) NSUInteger count; |
| 284 |
| 285 + (instancetype)array; |
| 286 + (instancetype)arrayWithValue:(BOOL)value; |
| 287 + (instancetype)arrayWithValueArray:(GPBBoolArray *)array; |
| 288 + (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 289 |
| 290 // Initializes the array, copying the values. |
| 291 - (instancetype)initWithValues:(const BOOL [])values |
| 292 count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 293 - (instancetype)initWithValueArray:(GPBBoolArray *)array; |
| 294 - (instancetype)initWithCapacity:(NSUInteger)count; |
| 295 |
| 296 - (BOOL)valueAtIndex:(NSUInteger)index; |
| 297 |
| 298 - (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *sto
p))block; |
| 299 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 300 usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *s
top))block; |
| 301 |
| 302 - (void)addValue:(BOOL)value; |
| 303 - (void)addValues:(const BOOL [])values count:(NSUInteger)count; |
| 304 - (void)addValuesFromArray:(GPBBoolArray *)array; |
| 305 |
| 306 - (void)insertValue:(BOOL)value atIndex:(NSUInteger)index; |
| 307 |
| 308 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(BOOL)value; |
| 309 |
| 310 - (void)removeValueAtIndex:(NSUInteger)index; |
| 311 - (void)removeAll; |
| 312 |
| 313 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 314 withValueAtIndex:(NSUInteger)idx2; |
| 315 |
| 316 @end |
| 317 |
| 318 #pragma mark - Enum |
| 319 |
| 320 @interface GPBEnumArray : NSObject <NSCopying> |
| 321 |
| 322 @property(nonatomic, readonly) NSUInteger count; |
| 323 @property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; |
| 324 |
| 325 + (instancetype)array; |
| 326 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func
; |
| 327 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func |
| 328 rawValue:(int32_t)value; |
| 329 + (instancetype)arrayWithValueArray:(GPBEnumArray *)array; |
| 330 + (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func |
| 331 capacity:(NSUInteger)count; |
| 332 |
| 333 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func; |
| 334 |
| 335 // Initializes the array, copying the values. |
| 336 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func |
| 337 rawValues:(const int32_t [])values |
| 338 count:(NSUInteger)count NS_DESIGNATED_INITI
ALIZER; |
| 339 - (instancetype)initWithValueArray:(GPBEnumArray *)array; |
| 340 - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func |
| 341 capacity:(NSUInteger)count; |
| 342 |
| 343 // These will return kGPBUnrecognizedEnumeratorValue if the value at index is no
t a |
| 344 // valid enumerator as defined by validationFunc. If the actual value is |
| 345 // desired, use "raw" version of the method. |
| 346 |
| 347 - (int32_t)valueAtIndex:(NSUInteger)index; |
| 348 |
| 349 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *
stop))block; |
| 350 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 351 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL
*stop))block; |
| 352 |
| 353 // These methods bypass the validationFunc to provide access to values that were
not |
| 354 // known at the time the binary was compiled. |
| 355 |
| 356 - (int32_t)rawValueAtIndex:(NSUInteger)index; |
| 357 |
| 358 - (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOO
L *stop))block; |
| 359 - (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts |
| 360 usingBlock:(void (^)(int32_t value, NSUInteger idx, B
OOL *stop))block; |
| 361 |
| 362 // If value is not a valid enumerator as defined by validationFunc, these |
| 363 // methods will assert in debug, and will log in release and assign the value |
| 364 // to the default value. Use the rawValue methods below to assign non enumerator |
| 365 // values. |
| 366 |
| 367 - (void)addValue:(int32_t)value; |
| 368 - (void)addValues:(const int32_t [])values count:(NSUInteger)count; |
| 369 |
| 370 - (void)insertValue:(int32_t)value atIndex:(NSUInteger)index; |
| 371 |
| 372 - (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value; |
| 373 |
| 374 // These methods bypass the validationFunc to provide setting of values that wer
e not |
| 375 // known at the time the binary was compiled. |
| 376 |
| 377 - (void)addRawValue:(int32_t)value; |
| 378 - (void)addRawValuesFromArray:(GPBEnumArray *)array; |
| 379 - (void)addRawValues:(const int32_t [])values count:(NSUInteger)count; |
| 380 |
| 381 - (void)insertRawValue:(int32_t)value atIndex:(NSUInteger)index; |
| 382 |
| 383 - (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(int32_t)value; |
| 384 |
| 385 // No validation applies to these methods. |
| 386 |
| 387 - (void)removeValueAtIndex:(NSUInteger)index; |
| 388 - (void)removeAll; |
| 389 |
| 390 - (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 391 withValueAtIndex:(NSUInteger)idx2; |
| 392 |
| 393 @end |
| 394 |
| 395 //%PDDM-EXPAND-END DECLARE_ARRAYS() |
| 396 |
| 397 NS_ASSUME_NONNULL_END |
| 398 |
| 399 //%PDDM-DEFINE DECLARE_ARRAYS() |
| 400 //%ARRAY_INTERFACE_SIMPLE(Int32, int32_t) |
| 401 //%ARRAY_INTERFACE_SIMPLE(UInt32, uint32_t) |
| 402 //%ARRAY_INTERFACE_SIMPLE(Int64, int64_t) |
| 403 //%ARRAY_INTERFACE_SIMPLE(UInt64, uint64_t) |
| 404 //%ARRAY_INTERFACE_SIMPLE(Float, float) |
| 405 //%ARRAY_INTERFACE_SIMPLE(Double, double) |
| 406 //%ARRAY_INTERFACE_SIMPLE(Bool, BOOL) |
| 407 //%ARRAY_INTERFACE_ENUM(Enum, int32_t) |
| 408 |
| 409 // |
| 410 // The common case (everything but Enum) |
| 411 // |
| 412 |
| 413 //%PDDM-DEFINE ARRAY_INTERFACE_SIMPLE(NAME, TYPE) |
| 414 //%#pragma mark - NAME |
| 415 //% |
| 416 //%@interface GPB##NAME##Array : NSObject <NSCopying> |
| 417 //% |
| 418 //%@property(nonatomic, readonly) NSUInteger count; |
| 419 //% |
| 420 //%+ (instancetype)array; |
| 421 //%+ (instancetype)arrayWithValue:(TYPE)value; |
| 422 //%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; |
| 423 //%+ (instancetype)arrayWithCapacity:(NSUInteger)count; |
| 424 //% |
| 425 //%// Initializes the array, copying the values. |
| 426 //%- (instancetype)initWithValues:(const TYPE [])values |
| 427 //% count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; |
| 428 //%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; |
| 429 //%- (instancetype)initWithCapacity:(NSUInteger)count; |
| 430 //% |
| 431 //%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, Basic) |
| 432 //% |
| 433 //%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, Basic) |
| 434 //% |
| 435 //%@end |
| 436 //% |
| 437 |
| 438 // |
| 439 // Macros specific to Enums (to tweak their interface). |
| 440 // |
| 441 |
| 442 //%PDDM-DEFINE ARRAY_INTERFACE_ENUM(NAME, TYPE) |
| 443 //%#pragma mark - NAME |
| 444 //% |
| 445 //%@interface GPB##NAME##Array : NSObject <NSCopying> |
| 446 //% |
| 447 //%@property(nonatomic, readonly) NSUInteger count; |
| 448 //%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc; |
| 449 //% |
| 450 //%+ (instancetype)array; |
| 451 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)f
unc; |
| 452 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)f
unc |
| 453 //% rawValue:(TYPE)value; |
| 454 //%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array; |
| 455 //%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)f
unc |
| 456 //% capacity:(NSUInteger)count; |
| 457 //% |
| 458 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)fu
nc; |
| 459 //% |
| 460 //%// Initializes the array, copying the values. |
| 461 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)fu
nc |
| 462 //% rawValues:(const TYPE [])values |
| 463 //% count:(NSUInteger)count NS_DESIGNATED_IN
ITIALIZER; |
| 464 //%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array; |
| 465 //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)fu
nc |
| 466 //% capacity:(NSUInteger)count; |
| 467 //% |
| 468 //%// These will return kGPBUnrecognizedEnumeratorValue if the value at index is
not a |
| 469 //%// valid enumerator as defined by validationFunc. If the actual value is |
| 470 //%// desired, use "raw" version of the method. |
| 471 //% |
| 472 //%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, NAME) |
| 473 //% |
| 474 //%// These methods bypass the validationFunc to provide access to values that w
ere not |
| 475 //%// known at the time the binary was compiled. |
| 476 //% |
| 477 //%- (TYPE)rawValueAtIndex:(NSUInteger)index; |
| 478 //% |
| 479 //%- (void)enumerateRawValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOO
L *stop))block; |
| 480 //%- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts |
| 481 //% usingBlock:(void (^)(TYPE value, NSUInteger idx, B
OOL *stop))block; |
| 482 //% |
| 483 //%// If value is not a valid enumerator as defined by validationFunc, these |
| 484 //%// methods will assert in debug, and will log in release and assign the value |
| 485 //%// to the default value. Use the rawValue methods below to assign non enumera
tor |
| 486 //%// values. |
| 487 //% |
| 488 //%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, NAME) |
| 489 //% |
| 490 //%@end |
| 491 //% |
| 492 |
| 493 //%PDDM-DEFINE ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) |
| 494 //%- (TYPE)valueAtIndex:(NSUInteger)index; |
| 495 //% |
| 496 //%- (void)enumerateValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *
stop))block; |
| 497 //%- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts |
| 498 //% usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL
*stop))block; |
| 499 |
| 500 //%PDDM-DEFINE ARRAY_MUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME) |
| 501 //%- (void)addValue:(TYPE)value; |
| 502 //%- (void)addValues:(const TYPE [])values count:(NSUInteger)count; |
| 503 //%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE) |
| 504 //%- (void)insertValue:(TYPE)value atIndex:(NSUInteger)index; |
| 505 //% |
| 506 //%- (void)replaceValueAtIndex:(NSUInteger)index withValue:(TYPE)value; |
| 507 //%ARRAY_EXTRA_MUTABLE_METHODS2_##HELPER_NAME(NAME, TYPE) |
| 508 //%- (void)removeValueAtIndex:(NSUInteger)index; |
| 509 //%- (void)removeAll; |
| 510 //% |
| 511 //%- (void)exchangeValueAtIndex:(NSUInteger)idx1 |
| 512 //% withValueAtIndex:(NSUInteger)idx2; |
| 513 |
| 514 // |
| 515 // These are hooks invoked by the above to do insert as needed. |
| 516 // |
| 517 |
| 518 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Basic(NAME, TYPE) |
| 519 //%- (void)addValuesFromArray:(GPB##NAME##Array *)array; |
| 520 //% |
| 521 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Basic(NAME, TYPE) |
| 522 // Empty |
| 523 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Enum(NAME, TYPE) |
| 524 // Empty |
| 525 //%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Enum(NAME, TYPE) |
| 526 //% |
| 527 //%// These methods bypass the validationFunc to provide setting of values that
were not |
| 528 //%// known at the time the binary was compiled. |
| 529 //% |
| 530 //%- (void)addRawValue:(TYPE)value; |
| 531 //%- (void)addRawValuesFromArray:(GPB##NAME##Array *)array; |
| 532 //%- (void)addRawValues:(const TYPE [])values count:(NSUInteger)count; |
| 533 //% |
| 534 //%- (void)insertRawValue:(TYPE)value atIndex:(NSUInteger)index; |
| 535 //% |
| 536 //%- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(TYPE)value; |
| 537 //% |
| 538 //%// No validation applies to these methods. |
| 539 //% |
OLD | NEW |