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